SatriaWiki wiki http://wiki.satria.de/index.php?title=Hauptseite MediaWiki 1.32.6 first-letter Medium Spezial Diskussion Benutzer Benutzer Diskussion SatriaWiki SatriaWiki Diskussion Datei Datei Diskussion MediaWiki MediaWiki Diskussion Vorlage Vorlage Diskussion Hilfe Hilfe Diskussion Kategorie Kategorie Diskussion Hauptseite 0 1 1 2010-07-30T20:52:47Z MediaWiki default 0 wikitext text/x-wiki '''MediaWiki wurde erfolgreich installiert.''' Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [http://meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch]. == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 3e49cd7ebcf2690896f04fa5d75773f2825463fb 2 1 2010-07-30T21:06:07Z Satria 1 wikitext text/x-wiki == Willkommen auf dem Satra.de Wiki == <font size="+2">'''[[Inhalt]]'''</font><br> <br> == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] ae91a01a64b05c07571c029d67e65e1ba5c489ed 43 2 2010-08-10T21:27:05Z 124.238.242.97 0 shawano city wi http://marklobada.angelfire.com/st.-anthony-the-abbot.html www.south park.com st. thomas virgin islands http://marklobada.angelfire.com/www.comcast-spectacor.com.html harmony.com pas wikitext text/x-wiki shawano city wi http://marklobada.angelfire.com/st.-anthony-the-abbot.html www.south park.com st. thomas virgin islands http://marklobada.angelfire.com/www.comcast-spectacor.com.html harmony.com pastor.melissa scott http://marklobada.angelfire.com/land-for-sale-wytheville-va.html www.century21.com.au bundaberg portugal. the man forum http://marklobada.angelfire.com/tate-realestate.com.html wolvue st. lambert brussels apex property management inc http://marklobada.angelfire.com/map.html marcel i. weinreich www.weather.dcom http://marklobada.angelfire.com/holiday-in-canada-.com.html www.chelwest.nhs.uk services www.fk asociados.com http://marklobada.angelfire.com/rogersville-realestate.com.html feeway mini storage.ca kenko teleplus 1.4 http://marklobada.angelfire.com/karen-k.-mackay.html ariane.immo wanadoo.fr century21.com wa http://marklobada.angelfire.com/www.chelwest.nhs.uk-services.html pacific intermountain express inc wwww.century21.com http://marklobada.angelfire.com/century21-atwoodsmith.com.html john d. clement dramas 58f67441cbd436a40435a2e737b7459049e28d4d 44 43 2010-08-11T10:28:14Z Satria 1 Schützte „[[Hauptseite]]“ ([edit=sysop] (unbeschränkt) [move=sysop] (unbeschränkt)) wikitext text/x-wiki shawano city wi http://marklobada.angelfire.com/st.-anthony-the-abbot.html www.south park.com st. thomas virgin islands http://marklobada.angelfire.com/www.comcast-spectacor.com.html harmony.com pastor.melissa scott http://marklobada.angelfire.com/land-for-sale-wytheville-va.html www.century21.com.au bundaberg portugal. the man forum http://marklobada.angelfire.com/tate-realestate.com.html wolvue st. lambert brussels apex property management inc http://marklobada.angelfire.com/map.html marcel i. weinreich www.weather.dcom http://marklobada.angelfire.com/holiday-in-canada-.com.html www.chelwest.nhs.uk services www.fk asociados.com http://marklobada.angelfire.com/rogersville-realestate.com.html feeway mini storage.ca kenko teleplus 1.4 http://marklobada.angelfire.com/karen-k.-mackay.html ariane.immo wanadoo.fr century21.com wa http://marklobada.angelfire.com/www.chelwest.nhs.uk-services.html pacific intermountain express inc wwww.century21.com http://marklobada.angelfire.com/century21-atwoodsmith.com.html john d. clement dramas 58f67441cbd436a40435a2e737b7459049e28d4d 45 44 2010-08-11T10:31:40Z Satria 1 Änderung 43 von [[Special:Contributions/124.238.242.97|124.238.242.97]] ([[User talk:124.238.242.97|Diskussion]]) wurde rückgängig gemacht. wikitext text/x-wiki == Willkommen auf dem Satra.de Wiki == <font size="+2">'''[[Inhalt]]'''</font><br> <br> == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] ae91a01a64b05c07571c029d67e65e1ba5c489ed 46 45 2010-08-11T10:32:00Z Satria 1 wikitext text/x-wiki == Willkommen auf dem Satria.de Wiki == <font size="+2">'''[[Inhalt]]'''</font><br> <br> == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 0d1a8ddb00c2c3c0ddce393bce9824833e296bd0 Abkürzungen 0 2 3 2010-07-30T21:09:48Z Satria 1 Die Seite wurde neu angelegt: „Meine Liste mit Abkürzungen aller Art:<br> ===A=== ===B===<br> ===C===<br> ===D===<br> ===E===<br> ===F===<br> ===G===<br> ;GMCH:Graphics and Memory Controller H…“ wikitext text/x-wiki Meine Liste mit Abkürzungen aller Art:<br> ===A=== ===B===<br> ===C===<br> ===D===<br> ===E===<br> ===F===<br> ===G===<br> ;GMCH:Graphics and Memory Controller Hub. ''Die Chipsatzkomponente, die die Kommunikation zwischen der CPU und allen anderen Geräten übernimmt.''<br> ===H===<br> ===I===<br> ===J===<br> ===K===<br> ===L===<br> ===M===<br> ;MTBF:Mean Time Between Failures. ===N===<br> ===O===<br> ===P===<br> ===Q===<br> ===R===<br> ===S===<br> ===T===<br> ===U===<br> ===V===<br> ===W===<br> ===X===<br> ===Y===<br> ===Z===<br> 82d43cc12a94a4b34547373c671c964680e9277c 4 3 2010-07-30T21:10:55Z Satria 1 wikitext text/x-wiki Meine Liste mit Abkürzungen aller Art: ===A=== ===B=== ===C=== ===D=== ===E=== ===F=== ===G=== ;GMCH:Graphics and Memory Controller Hub. ''Die Chipsatzkomponente, die die Kommunikation zwischen der CPU und allen anderen Geräten übernimmt.'' ===H=== ===I=== ===J=== ===K=== ===L=== ===M=== ;MTBF:Mean Time Between Failures. ===N=== ===O=== ===P=== ===Q=== ===R=== ===S=== ===T=== ===U=== ===V=== ===W=== ===X=== ===Y=== ===Z=== 18a2c6ef8a245fd27c9e6caa1cb779371daf6689 32 4 2010-07-31T06:01:37Z Satria 1 /* D */ wikitext text/x-wiki Meine Liste mit Abkürzungen aller Art: ===A=== ===B=== ===C=== ===D=== ;DoS:Denial of Service ===E=== ===F=== ===G=== ;GMCH:Graphics and Memory Controller Hub. ''Die Chipsatzkomponente, die die Kommunikation zwischen der CPU und allen anderen Geräten übernimmt.'' ===H=== ===I=== ===J=== ===K=== ===L=== ===M=== ;MTBF:Mean Time Between Failures. ===N=== ===O=== ===P=== ===Q=== ===R=== ===S=== ===T=== ===U=== ===V=== ===W=== ===X=== ===Y=== ===Z=== d1e8ab63d5666806aa33f418533b19891db80264 Analoges Fernsehen 0 3 5 2010-07-30T21:12:59Z Satria 1 Die Seite wurde neu angelegt: „Das analoge terrestrische Fernsehsignal (Empfang der analogen Funkwellen über die "Luft") wurde offziell am 31.12.2008 komplett abgeschaltet. Es ist durch das di…“ wikitext text/x-wiki Das analoge terrestrische Fernsehsignal (Empfang der analogen Funkwellen über die "Luft") wurde offziell am 31.12.2008 komplett abgeschaltet. Es ist durch das digitale DVB-T ersetzt worden, das im Übrigen dieselben Frequenzen nutzt, wie das analoge Signal. Die Ausstrahlung des analogen Satellitensignals ist für Termine zwischen 2010 und 2012 geplant. Jeder Sender entscheidet selbst über den Abschalttermin. Zielsetzung für die analoge Abschaltung im Kabelnetz ist 2010, was nicht als festgesetzter, endgültiger Termin zu verstehen ist (s. Quellen). Ich persönlich würde aber vorsorgen, damit man nicht plötzlich statt Fernsehen das Nachsehen hat ;) Obwohl - ein paar Tage/Wochen ohne Fernsehn tun auch nicht unbedingt weh ;) Quellen:<br> [[http://www.gutefrage.net/tipp/das-maerchen-ueber-die-abschaltung-des-analogen-fernsehens www.gutefrage.net]]<br> [[http://de.wikipedia.org/wiki/Analoges_Fernsehen Analoges Fernsehen auf Wikipedia]]<br> [[http://de.wikipedia.org/wiki/Digitaler_Rundfunk Digitaler Rundfunk auf Wikipedia]]<br> 88bfeb1de9a596cb8782d72d2d2abb0d946ef3b1 8 5 2010-07-30T21:19:52Z Satria 1 wikitext text/x-wiki Das analoge terrestrische Fernsehsignal (Empfang der analogen Funkwellen über die "Luft") wurde offziell am 31.12.2008 komplett abgeschaltet. Es ist durch das digitale DVB-T ersetzt worden, das im Übrigen dieselben Frequenzen nutzt, wie das analoge Signal. Die Ausstrahlung des analogen Satellitensignals ist für Termine zwischen 2010 und 2012 geplant. Jeder Sender entscheidet selbst über den Abschalttermin. Zielsetzung für die analoge Abschaltung im Kabelnetz ist 2010, was nicht als festgesetzter, endgültiger Termin zu verstehen ist (s. Quellen). Ich persönlich würde aber vorsorgen, damit man nicht plötzlich statt Fernsehen das Nachsehen hat ;) Obwohl - ein paar Tage/Wochen ohne Fernsehn tun auch nicht unbedingt weh ;) Quellen:<br> [http://www.gutefrage.net/tipp/das-maerchen-ueber-die-abschaltung-des-analogen-fernsehens www.gutefrage.net]<br> [http://de.wikipedia.org/wiki/Analoges_Fernsehen Analoges Fernsehen auf Wikipedia]<br> [http://de.wikipedia.org/wiki/Digitaler_Rundfunk Digitaler Rundfunk auf Wikipedia]<br> 13620f41fdf37b99f45ceb7155c5751e23bdfbbb 9 8 2010-07-30T21:20:14Z Satria 1 wikitext text/x-wiki Das analoge terrestrische Fernsehsignal (Empfang der analogen Funkwellen über die "Luft") wurde offziell am 31.12.2008 komplett abgeschaltet. Es ist durch das digitale DVB-T ersetzt worden, das im Übrigen dieselben Frequenzen nutzt, wie das analoge Signal. Die Ausstrahlung des analogen Satellitensignals ist für Termine zwischen 2010 und 2012 geplant. Jeder Sender entscheidet selbst über den Abschalttermin. Zielsetzung für die analoge Abschaltung im Kabelnetz ist 2010, was nicht als festgesetzter, endgültiger Termin zu verstehen ist (s. Quellen). Ich persönlich würde aber vorsorgen, damit man nicht plötzlich statt Fernsehen das Nachsehen hat ;) Obwohl - ein paar Tage/Wochen ohne Fernsehn tun auch nicht unbedingt weh ;) ==Quellen== [http://www.gutefrage.net/tipp/das-maerchen-ueber-die-abschaltung-des-analogen-fernsehens www.gutefrage.net]<br> [http://de.wikipedia.org/wiki/Analoges_Fernsehen Analoges Fernsehen auf Wikipedia]<br> [http://de.wikipedia.org/wiki/Digitaler_Rundfunk Digitaler Rundfunk auf Wikipedia]<br> 884ecab2e6351b764edf0d9f2e73c653910e1c53 ApacheTomcat 0 4 6 2010-07-30T21:15:28Z Satria 1 Die Seite wurde neu angelegt: „Bei Apache Tomcat 5.5 ist es leicht verwirrend, dass die URL<br> <pre>http://localhost/</pre> in das Verzeichnis<br> <pre>...\webapps\ROOT\</pre> springt, gleichz…“ wikitext text/x-wiki Bei Apache Tomcat 5.5 ist es leicht verwirrend, dass die URL<br> <pre>http://localhost/</pre> in das Verzeichnis<br> <pre>...\webapps\ROOT\</pre> springt, gleichzeitig aber<br> <pre>http://localhost/servlets-examples/</pre> in das Verzeichnis<br> <pre>...\webapps\servlets-examples\</pre> (statt ...\webapps\'''ROOT'''\servlets-examples) springt. Andere relative Pfade funktionieren aber:<br> <pre>http://localhost/tomcat.gif</pre> ruft <pre>...\webapps\ROOT\tomcat.gif</pre> auf. Des Rätsels Lösung: Basis-Verzeichnis ist '''...\webapps'''.<br> Wird ein URL-Pfad (...localhost/__admin/__) nicht im "webapps" Verzeichnis gefunden, oder existiert dort keine bekannte index-Datei, '''nur dann''' wird ...\webapps\ROOT\ angesprungen und der URL-Pfad relativ hierzu aufgelöst. 2f467391ebce57233986c37d9e8b0b347c899c24 Boeing 767 0 5 7 2010-07-30T21:19:15Z Satria 1 Die Seite wurde neu angelegt: „===767-200ER=== <pre> Länge: 48.50 m Höhe: 15.85 m Spannweite: 47.57 m Flügelfläche: 283.00 m² Abfluggewicht: 159200 kg Max. N…“ wikitext text/x-wiki ===767-200ER=== <pre> Länge: 48.50 m Höhe: 15.85 m Spannweite: 47.57 m Flügelfläche: 283.00 m² Abfluggewicht: 159200 kg Max. Nutzlast: 33000 kg Geschwindigkeit: 925 km/h Max. Flughöhe: 13200 m Tankkapazität: 77400 l Passagiere: 174-255 Reichweite: 12300 km Triebwerke: 2x PW4000 oder andere, Schub:249 kN Erstflug: 26.9.1981 </pre> ===767-300ER=== <pre> Länge: 54.95 m Höhe: 15.85 m Spannweite: 47.60 m Flügelfläche: 283.00 m² Abfluggewicht: 184620 kg Max. Nutzlast: 39700 kg Geschwindigkeit: 910 km/h Max. Flughöhe: 13200 m Tankkapazität: 91000 l Passagiere: 210-316 Reichweite: 11000 km Triebwerke: 2x PW4060 oder Gneral Elecric CF6-80C2B Schub:267 kN Erstflug: 30.1.1986 </pre> ===767-400ER=== <pre> Länge: 61.38 m Höhe: 16.80 m Spannweite: 51.91 m Flügelfläche: 283.00 m2 Abfluggewicht: 204700 kg Max. Nutzlast: 45500 kg Geschwindigkeit: 890 km/h Max. Flughöhe: 12500 m Tankkapazität: 91500 l Passagiere: 246-356 Reichweite: 10420 km Triebwerke: 2x PW4062 oder Gneral Elecric CF6-80C2 Schub:282 kN Erstflug: 9.10.1999 </pre> ==Quellen== [http://www.airliners.de/magazin/flugzeuglexikon/flugzeugdetails/id/39/mid/2 767 - Boeing - Flugzeuglexikon - Magazin]<br> [http://de.wikipedia.org/wiki/Boeing_767 Boeing 767 - Wikipedia]<br> 029554c41c3df65609a29760ff127a4b4f03c7ce Cookies 0 6 10 2010-07-30T21:21:28Z Satria 1 Die Seite wurde neu angelegt: „Wer sich etwas genauer mit seinem Web-Browser beschäftigt (Firefox ermöglicht das besser als der InternetExplorer), wird feststellen, dass sich unzählige [Cook…“ wikitext text/x-wiki Wer sich etwas genauer mit seinem Web-Browser beschäftigt (Firefox ermöglicht das besser als der InternetExplorer), wird feststellen, dass sich unzählige [Cookies|http://de.wikipedia.org/wiki/HTTP-Cookie] auf dem eigenen Rechner befinden. Cookies von Seiten, die man nie explizit aufgerufen hat, die aber stillschweigend zusammen mit anderen Seiten geladen werden! So ein Cookie ist an sich nichts Schädliches, kann keine Daten zerstören und ist auch kein Virus, aber es kann auf verschiedene Art mißbraucht werden, z.B. um Statistiken zu führen und ungewollt Surf-Verhalten zu analysieren und an Dritte weiterzugeben. Manche Cookies sind aber auch gewollt. So werden Cookies auch dafür verwendet, um auf dem Rechner permanent, also auch nach Schießen des Browsers oder Neustarten des Rechners, Daten zu speichern wie z.B. Login-Daten von Foren-Seiten oder Einstellungen verschiedener Seiten. Wer ein bisschen mehr Kontrolle haben möchte und es überhaupt nicht mag, dass hunderte von dubiosen Seiten Informationen ungefragt auf dem eigenen Rechner ablegen und wieder abrufen können, schaltet die automatische Cookie behandlug ab! Im __Firefox__ ist die einzige, sinnvolle Methode: Extras -> Einstellungen -> Datenschutz: "Cookies akzeptieren" deaktivieren!<br> Jetzt muss man allerdings mehr oder weniger mühsam alle Seiten in die "Ausnahmen" eintragen, denen man gestatten will, Cookies zu setzen, also Foren-Seiten etc. Trägt man eine Seite (Domain) ein, gilt die gewählte Einstellung (Erlauben/Blockieren/...) auch für alle Subdomains!<br> Beispiel: google.de = Erlauben (erlaubt ''www''.google.de, ''maps''.google.de, ''earth''.google.de, usw. ein Cookie zu setzen) Hier eine Liste, welche Seiten man "Erlauben" muss, wenn man will, dass bestimmte Seiten funktionieren: ;Amazon:amazon.de ;Ciao:ciao.de ;CNet:cnet.com ;eBay:ebay.co.uk<br>ebay.com<br>ebay.de<br>ebayrtm.com ;Google (Einstellungen):google.com<br>google.de ;MeinVZ:meinvz.net ;Musicload:musicload.de<br>telekom.com<br>t-online.de ;Myspace:myspace.com ;Paypal:paypal.com ;Vodafone:vodafone.com<br>vodafone.de ;Yahoo:yahoo.com<br>yahoo.de ;Youtube:youtube.com 475976ba6de9e7b6a424c52ea69571625de57b34 11 10 2010-07-30T21:21:56Z Satria 1 wikitext text/x-wiki Wer sich etwas genauer mit seinem Web-Browser beschäftigt (Firefox ermöglicht das besser als der InternetExplorer), wird feststellen, dass sich unzählige [http://de.wikipedia.org/wiki/HTTP-Cookie Cookies] auf dem eigenen Rechner befinden. Cookies von Seiten, die man nie explizit aufgerufen hat, die aber stillschweigend zusammen mit anderen Seiten geladen werden! So ein Cookie ist an sich nichts Schädliches, kann keine Daten zerstören und ist auch kein Virus, aber es kann auf verschiedene Art mißbraucht werden, z.B. um Statistiken zu führen und ungewollt Surf-Verhalten zu analysieren und an Dritte weiterzugeben. Manche Cookies sind aber auch gewollt. So werden Cookies auch dafür verwendet, um auf dem Rechner permanent, also auch nach Schießen des Browsers oder Neustarten des Rechners, Daten zu speichern wie z.B. Login-Daten von Foren-Seiten oder Einstellungen verschiedener Seiten. Wer ein bisschen mehr Kontrolle haben möchte und es überhaupt nicht mag, dass hunderte von dubiosen Seiten Informationen ungefragt auf dem eigenen Rechner ablegen und wieder abrufen können, schaltet die automatische Cookie behandlug ab! Im __Firefox__ ist die einzige, sinnvolle Methode: Extras -> Einstellungen -> Datenschutz: "Cookies akzeptieren" deaktivieren!<br> Jetzt muss man allerdings mehr oder weniger mühsam alle Seiten in die "Ausnahmen" eintragen, denen man gestatten will, Cookies zu setzen, also Foren-Seiten etc. Trägt man eine Seite (Domain) ein, gilt die gewählte Einstellung (Erlauben/Blockieren/...) auch für alle Subdomains!<br> Beispiel: google.de = Erlauben (erlaubt ''www''.google.de, ''maps''.google.de, ''earth''.google.de, usw. ein Cookie zu setzen) Hier eine Liste, welche Seiten man "Erlauben" muss, wenn man will, dass bestimmte Seiten funktionieren: ;Amazon:amazon.de ;Ciao:ciao.de ;CNet:cnet.com ;eBay:ebay.co.uk<br>ebay.com<br>ebay.de<br>ebayrtm.com ;Google (Einstellungen):google.com<br>google.de ;MeinVZ:meinvz.net ;Musicload:musicload.de<br>telekom.com<br>t-online.de ;Myspace:myspace.com ;Paypal:paypal.com ;Vodafone:vodafone.com<br>vodafone.de ;Yahoo:yahoo.com<br>yahoo.de ;Youtube:youtube.com bde5bb0dbeaa1d1225bbb27acc3503e3c0a41b69 DNS 0 7 12 2010-07-30T21:23:22Z Satria 1 Die Seite wurde neu angelegt: „Es gibt 4 Basen in der DNS (engl. DNA), von denen jeweils immer 2 zueinander komplementär sind: Adenin<br> Thymin<br> Cytosin<br> Guanin<br> ==Quellen== [http…“ wikitext text/x-wiki Es gibt 4 Basen in der DNS (engl. DNA), von denen jeweils immer 2 zueinander komplementär sind: Adenin<br> Thymin<br> Cytosin<br> Guanin<br> ==Quellen== [http://de.wikipedia.org/wiki/GC-Gehalt GC Gehalt auf Wikipedia] ae10667e5fc8b1b79c0c711cae4395ee998bed8f DOS Prompt 0 8 13 2010-07-30T21:26:14Z Satria 1 Die Seite wurde neu angelegt: „Unter echtem DOS musste man ANSI.SYS in der CONFIG.SYS laden, um von erweiterten Funktionen in der DOS Prompt zu profitieren:<br> DEVICE=...\ANSI.SYS [/switches]…“ wikitext text/x-wiki Unter echtem DOS musste man ANSI.SYS in der CONFIG.SYS laden, um von erweiterten Funktionen in der DOS Prompt zu profitieren:<br> DEVICE=...\ANSI.SYS [/switches] ([http://www.computerhope.com/ansisys.htm#02 Details]) die CMD Box unter Windows bietet diese Erweiterungen leider nicht ohne Weiteres, sie kann aber gewisse Dinge (Schriftfarbe ändern etc.) auch ohne ANSI.SYS. Besondere ANSI Funktionen werden mit dem '''ESCAPE-Zeichen''' (ASCII 27) eingeleitet, das mit einem '''$e''' erzeugt werden kann. Danach folgt die öffnende eckige Klammer '''['''. Ein Prompt-Befehl wäre also z.B.:<br> prompt $e[36m$p$g Dieser Befehl würde eine DOS Prompt erzeugen, in cyan-blauer Schrift die so aussieht: C:\DOS> ==Quellen== [http://www.computerhope.com/ansisys.htm#02 Microsoft DOS ansi.sys command]<br> [http://www.i8086.de/dos-befehle/ansi-sys.html MS-DOS 6.22 Befehlsreferenz Ansi.sys]<br> b837b753f0552f5c0197f9a6c37640ee76ffda7b Mozilla Firefox 0 9 14 2010-07-30T21:27:26Z Satria 1 Die Seite wurde neu angelegt: „Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung…“ wikitext text/x-wiki Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei cert8.db korrupt ist. Es genügt meistens, diese datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. 0deac12567fea39446809613172a2866d061489e Mozilla Thunderbird 0 10 15 2010-07-30T21:30:04Z Satria 1 Die Seite wurde neu angelegt: „==Mail-Ordner Einstellungen== Wer von Version 2.x auf 3.x updated, wird (mindestens) eine Eigenschaft der Mail-Ordner vermissen, die den Speicherplatz betrifft E…“ wikitext text/x-wiki ==Mail-Ordner Einstellungen== Wer von Version 2.x auf 3.x updated, wird (mindestens) eine Eigenschaft der Mail-Ordner vermissen, die den Speicherplatz betrifft Eigenschaften von Ordner (Posteingang/Junk ...) --> Speicherplatz '''"Alle gelesenen Nachrichten"''' wurde durch '''"Gekennzeichnete Nachrichten immer behalten"''' ersetzt, was aber nicht im geringsten dasselbe bedeutet! Der Ordner behält aber stillschweigend die Einstellung von 2.x, diese ist aber nicht mehr erreichbar, sprich - sie lässt sich weder altivieren noch deaktivieren! Jetzt muss man wissen, dass diese Ordner-Eigenschaften im Verzeichnis des Kontos, normalerweise in C:\Dokumente und Einstellungen\<Benutzer>\Anwendungsdaten\Thunderbird\Profiles\xyz.default\Mail\<Kontoname> in Dateien mit der Endung '''.msf'' gespeichert werden. Diese kann man entweder editieren, was aber genaue Kenntnisse voraussetzt(!) oder einfach löschen, und die Konfiguration dann über Thunderbird für jeden Ordner erneut vornehmen. Beim Löschen sollte Thunderbird nicht gestartet sein. '''Achtung! Die Spalten-Einstellungen sowie Sortierreihenfolge des jeweiligen Ordners gehen beim Löschen der .msf Datei ebenfalls verloren und man muss diese Einstellungen erneut vornehmen!''' 61b270b55d4b1f8f9777da4d5a9ac975b953901b Levenberg Marquardt 0 11 16 2010-07-30T21:32:00Z Satria 1 Die Seite wurde neu angelegt: „Das ist ein Verfahren zur Approximation von Messdaten, Kurvenglättung etc. ==Quellen== http://www.messen-und-deuten.de“ wikitext text/x-wiki Das ist ein Verfahren zur Approximation von Messdaten, Kurvenglättung etc. ==Quellen== http://www.messen-und-deuten.de 437e50aa0091859cbf1661d67f0ca1f1b3bf05c5 Lightning 0 12 17 2010-07-30T21:33:24Z Satria 1 Die Seite wurde neu angelegt: „Lightnning ist ein (Termin-)Kalender AddOn für Mozilla Thunderbird, das u.A. mit öffentlichen Kalendern im ICS Format arbeitet. Der Speicherort für die eigene…“ wikitext text/x-wiki Lightnning ist ein (Termin-)Kalender AddOn für Mozilla Thunderbird, das u.A. mit öffentlichen Kalendern im ICS Format arbeitet. Der Speicherort für die eigenen Kalender unter Lightning 1.0 (für Thunderbird 3.0) ist <pre>...\<Profilpfad>\calendar-data\local.sqlite</pre> ebee8ddffeec29b5c8bf359a0730205880eb172b Linux 0 13 18 2010-07-30T21:34:37Z Satria 1 Die Seite wurde neu angelegt: „Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Ze…“ wikitext text/x-wiki Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) :(){ :|:& } ;: 99a8ec6c93f3b3d8554bff2ae797698820781b8a 19 18 2010-07-30T21:34:53Z Satria 1 wikitext text/x-wiki Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> 71a3823571ea8bab2b807bec0baf5cffec93f880 Kühlgrenztemperatur 0 16 22 2010-07-31T05:40:25Z Satria 1 Die Seite wurde neu angelegt: „'''Abkühlung mit Verdunstung:''' Ist die Luft ungesättigt, wird parallel zum Wärmeübergang auf die Luft ein Stoffübergang vom Wasser in die Luft initiiert, …“ wikitext text/x-wiki '''Abkühlung mit Verdunstung:''' Ist die Luft ungesättigt, wird parallel zum Wärmeübergang auf die Luft ein Stoffübergang vom Wasser in die Luft initiiert, Wasser wird verdunstet . Die für die Verdunstung notwendige Wärme wird zunächst der Flüssigkeit entnommen. Die Flüssigkeit muss jetzt sowohl die Wärme zur Verdunstung als auch den in die Luft übertragenen Wärmestrom aufbringen. Es wird nach einer gewissen Zeit der Punkt erreicht, an dem die Flüssigkeitstemperatur ander Oberfläche die Lufttemperatur annimmt. Dieser Zustand ist jedoch nicht der Endzustand des Vorgangs, da die Verdunstung weiter Wärme benötigt, die sowohl aus der Flüssigkeit als auch aus der Luft entnommen wird. Die Flüssigkeitstemperatur fällt unter die Lufttemperatur ab. In der Folge wird die Wärme dann immer stärker der Luft entnommen, bis am Ende eine konstante Flüssigkeitstemperatur, die Kühlgrenztemperatur erreicht wird, bei der der ganze Wärmestrom zur Verdunstung aus der Luft stammt. ==Quellen== [http://www.td.mw.tum.de/tum-td/de/studium/lehre/thermo_2/kgtsite/kgt.htm Verdunstungskühlsysteme (Nasskühltürme) & Kühlgrenztemperatur] b710f7f9bce91d6db0e5a322169d93e54e69d201 Datei:USB2LPT17.jpg 6 17 23 2010-07-31T05:44:21Z Satria 1 Das fertige Modul des USB 2 LPT Konverters in der Version 1.7 wikitext text/x-wiki Das fertige Modul des USB 2 LPT Konverters in der Version 1.7 45d11e01d6a5bdf4fe127caa1ad435c4d648ec02 USB2LPT 0 18 24 2010-07-31T05:44:42Z Satria 1 Die Seite wurde neu angelegt: „Manche Moderne Rechner und fast alle Laptops / Notebooks haben keinen parallelen Port (LPT1) mehr. Da dieser in der Regel nur für Drucker verwendet wurde, ist di…“ wikitext text/x-wiki Manche Moderne Rechner und fast alle Laptops / Notebooks haben keinen parallelen Port (LPT1) mehr. Da dieser in der Regel nur für Drucker verwendet wurde, ist dies nicht weiter tragisch. Allerdings lässt sich dieser Port relativ leicht programmieren, und wenn damit etwas anderes machen möchte, weil er 8 schöne digitale Aus- und Eingänge hat, hat man ein Problem. Die meisten USB 2 LPT Konverter bieten in Wirklichkeit nur eine USB Druckerunterstützung und keinen vollwertigen Port 378h! Ich habe einen USB 2 LPT Konverter gefunden, der aber genau dies tut. Er emuliert einen herkömmlichen parallelen Port, und die Adresse ist sogar wählbar, da ein Treiber mitgeliefert wird. [[Datei:USB2LPT17.jpg]] Gebaut wird er von einem "Henrik Halftmann" an der TU Chemniz, der sehr fit in solchen Sachen zu sein scheint.<br> Infos gibt es [http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/ hier] 5a880589c3f628e0eb38e958f0c9e87ef5863334 Virtual Hosts 0 19 25 2010-07-31T05:50:56Z Satria 1 Die Seite wurde neu angelegt: „Was hier beschrieben wird, würde im web "Subdomains" heißen. Jedenfalls hat die Definition von virtuellen hosts lokal denselben Effekt. Eine Subdomain hat ihr …“ wikitext text/x-wiki Was hier beschrieben wird, würde im web "Subdomains" heißen. Jedenfalls hat die Definition von virtuellen hosts lokal denselben Effekt. Eine Subdomain hat ihr eigenes Root-Verzeichnis, und so kann es zu Problemen kommen, wenn man lokal unter <pre>http://localhost/subdomain/</pre> arbeitet, im web aber unter <pre>http://subdomain.web.site/</pre> denn im 1. Fall würde sich eine Pfadangabe wie "/" auf "localhost/", im 2. Fall aber auf das Verzeichnis "subdomain/" beziehen. Um auch lokal wie mit einer Subdomain arbeiten zu können, legt man Virtual Hosts an.<br> In der httpd.conf müssen folgende Änderungen gemacht werden: Jedes Verzeichnis, das als Subdomain behandelt werden soll, muss einen Eintrag dieser Art bekommen: <pre> <Directory "D:/Entwicklung/Website/Subdomain/"><br> Options FollowSymLinks<br> AllowOverride None<br> Order allow,deny<br> Allow from all<br> </Directory> </pre> Dazu müssen noch folgende Blöcke angelegt werden: NameVirtualHost localhost:80 ''nur einmal!''<br> <VirtualHost localhost:80> ''ja, auch für die "Basis-Seite"''<br> DocumentRoot "D:/Entwicklung/Website/"<br> ServerName localhost<br> </VirtualHost><br> <VirtualHost subdomain.localhost:80><br> DocumentRoot "D:/Entwicklung/Website/Subdomain/"<br> ServerName subdomain.localhost<br> </VirtualHost> Als letztes müssen die Namen noch auf die richtige IP aufgelöst werden.<br> Das geschieht in Windows über die Datei '''C:\WINDOWS\System32\Drivers\etc\hosts'''. Hier Einträge wie <pre>127.0.0.1 subdomain.localhost</pre> ergänzen. 595badeeaca05eee653e94d658dc880c5f7ecf50 Windows CHM Dateien 0 21 27 2010-07-31T05:54:03Z Satria 1 Die Seite wurde neu angelegt: „Beim Starten einer CHM Datei von einem Netzlaufwerk aus, kann es vorkommen, dass eine unsinnige Meldung erscheint, die Seite könne nicht angezeigt werden! Hat ve…“ wikitext text/x-wiki Beim Starten einer CHM Datei von einem Netzlaufwerk aus, kann es vorkommen, dass eine unsinnige Meldung erscheint, die Seite könne nicht angezeigt werden! Hat vermutlich mit Sicherheitseinstellungen des IE zu tun. Vom lokalen Laufwerk aus lässt sich dieselbe CHM Datei laden und lesen. 7ff149195bd634aeecb5fb6f4b75bb7f46f11e3b Windows Doppelte Autostart-Einträge 0 22 28 2010-07-31T05:55:54Z Satria 1 Die Seite wurde neu angelegt: „Wenn '''WindowsXP''' beim Starten die Elemente in dem "Autostart"-Ordner des Startmenüs zweimal startet, ist die Lösung leider nicht ganz trivial, sondern sogar…“ wikitext text/x-wiki Wenn '''WindowsXP''' beim Starten die Elemente in dem "Autostart"-Ordner des Startmenüs zweimal startet, ist die Lösung leider nicht ganz trivial, sondern sogar unlogisch. Schaut man sich den Autostart mit diversen Tools ([http://technet.microsoft.com/de-de/sysinternals/bb963902.aspx Autoruns]) oder msconfig an, so existieren alle Einträge tatsächlich 2 mal. Für alle Benutzer und den aktuellen. Löscht man einen Eintrag, ist der andere auch verschwunden! Verzwickt. !Ich habe das Problem bei mir gehabt und gelöst, dank eines Artikels im www. Es liegt an 2 falschen Registry-Einträgen. Warum und wodurch diese sich ohne guten Grund verstellt haben, weiß ich nicht. [[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] Hier den Wert für '''"Startup"''' korrigieren. Der Pfad enthält "All Users", sollte aber die ID des aktuell angemeldeten Benutzers haben (wie alle anderen Einträge dort auch). Ändern! [[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] Selbes gilt hier! a5792555011bc97102da440ee0375030ed419021 Windows Explorerspalten auf CD-Laufwerk 0 23 29 2010-07-31T05:56:58Z Satria 1 Die Seite wurde neu angelegt: „Wenn man seinen WindowsXP-Explorer schön eingerichtet hat, mit der Ansicht "Details", die Spaltenbreiten bestimmt hat usw. ist es dennoch so, dass der Inhalt ein…“ wikitext text/x-wiki Wenn man seinen WindowsXP-Explorer schön eingerichtet hat, mit der Ansicht "Details", die Spaltenbreiten bestimmt hat usw. ist es dennoch so, dass der Inhalt eines CD/DVD-Laufwerks anders dargestellt wird, mit so Gruppierungen wie "Momentan auf der CD". Man muss nicht alle Einstellungen für die optischen Laufwerke wiederholen, man macht einfach Folgendes: Rechtsklick auf das CD/DVD-Laufwerk und den Tab "Aufnahme" auswählen. Hier wird die Checkbox "CD-Aufnahme für dieses Laufwerk aktivieren" deaktiviert. Setzt voraus, dass man die Brennfunktion von XP nicht nutzt, sondern eigenständige Programme wie z.B. Nero. d69ae26404ab66a6965e663a20417582612ca33e Windows Installation ohne CDROM Laufwerk 0 24 30 2010-07-31T05:58:32Z Satria 1 Die Seite wurde neu angelegt: „Benötigt: *1 bootfähiger USB Stick mit einem Windows OS, wie z.B. BartPE *Windows Setup-CD Inhalt auf diesem Stick In BartPE startet man aus dem Windows-Setup-…“ wikitext text/x-wiki Benötigt: *1 bootfähiger USB Stick mit einem Windows OS, wie z.B. BartPE *Windows Setup-CD Inhalt auf diesem Stick In BartPE startet man aus dem Windows-Setup-CD Ordner "I386" das folgende Kommando: winnt32.exe /syspart:C: Windows Setup kopiert nun Dateien und beendet sich ohne Meldung, was in diesem Fall normal und kein Fehler ist. Eventuelle AHCI (SATA) Treiber, die in die Windows-Setup-CD integriert wurden, müssen jetzt nach C:\$WIN_NT$.~BT kopiert werden, wo auch Dateien wie <pre> 1394bus.sy_ abp480n5.sy_ acpi.sy_ </pre> usw. zu finden sind. Diese werden beim vorigen Schritt nämlich nicht mit kopiert. Nach einem reboot (ohne USB Stick), geht die normale Windows-Installation wie gewohnt weiter. ==Quellen== [http://www.vandomburg.net/installing-windows-xp-from-usb/ Roderick van Domburg's Cache » Installing Windows XP from USB] ac915296d69e8bcf6d4947077ae51ce11f450672 DoS 0 25 31 2010-07-31T06:01:12Z Satria 1 Die Seite wurde neu angelegt: „s. [[Abkürzungen]].“ wikitext text/x-wiki s. [[Abkürzungen]]. 52ab010250451e36768ee714ff0f4e1ae0c9bb36 Meine Fragen 0 27 35 2010-07-31T06:03:03Z Satria 1 Die Seite wurde neu angelegt: „;Sahara:Warum ist eine Wüste eine Wüste?<br>Was befindet sich unter dem Sand?“ wikitext text/x-wiki ;Sahara:Warum ist eine Wüste eine Wüste?<br>Was befindet sich unter dem Sand? 12519fd924f9ac1960d785ae9e2bfb7bbec92a77 Windows Netzwerkprobleme 0 28 39 2010-08-03T01:52:14Z Satria 1 Die Seite wurde neu angelegt: „==Abbruch beim Kopieren über Netzwerk== Es kommt vor, da meldet der PC beim Versuch, größere Datenmengen über das Netzwerk zu kopieren: <pre>Die Datei ... kon…“ wikitext text/x-wiki ==Abbruch beim Kopieren über Netzwerk== Es kommt vor, da meldet der PC beim Versuch, größere Datenmengen über das Netzwerk zu kopieren: <pre>Die Datei ... konnte nicht kopiert werden. Der angegebene Netzwerkname ist nicht mehr verfügbar.</pre> Nach längerer Suche, fand ich heraus, das dies daran liegen kann, dass der Server der Übertragung (von dem Kopiert werden soll) glaubt, es handle sich bei den Zugriffen um einen [[DoS]] Angriff! Ein Blick in die Ereignisanzeige/System bestätigte dies: <pre>Der Server hat einen versuchten Dienstverweigerungsangriff von Client ... ermittelt. Der Server hat die Verbindung getrennt.</pre> Beheben kann man das wie folgt über Registry Einträge: <pre>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\MaxMxpCt = 50..65535 [[DWORD]</pre> Mein Vorschlag: 16384. 2048 funktionierte zuerst, größere Dateien schlugen aber immernoch fehl. Falls das nicht ausreicht, kann man die [[DoS]] detection auch ausschalten. '''(Achtung: Eingriff in die Sicherheit!)''' <pre>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableDos = 1 [[DWORD]</pre> ==Computer im LAN nicht mehr "sichtbar"== Wenn der Ping auf einen Computer nicht mehr funktioniert, d.h. wenn es dabei zu einer Zeitüberschreitung kommt, die Firewall aber entweder aus ist oder korrekt konfiguriert, und LAN Zugriffe durchlassen müsste, könnte es an folgender Einstellung liegen:<br> Für den betroffene Netzwerkadapter wurde NAT aktiviert ("Gemeinsame Nutzung der Internetverbindung"), wie es bei Servern gemacht wird oder auch auf dem einfach PC, auf dem man VMWare Virtual Machines benutzt, deren Netzwerkkarte als "NAT" konfiguriert ist, damit diese die LAN-Internet-Anbindung des Host-Systems nutzen können. Ist hierbei das Häkchen "Anderen Benutzern im Netzwerk gestatten, die gemeinsame Nutzung der Internetverbindung zu steuern oder zu deaktivieren.", kommt es zu oben beschriebenen Problem. 5ef0af7039f5aa65bc640c7c9757dda5c9c00803 40 39 2010-08-03T01:52:48Z Satria 1 /* Computer im LAN nicht mehr "sichtbar" */ wikitext text/x-wiki ==Abbruch beim Kopieren über Netzwerk== Es kommt vor, da meldet der PC beim Versuch, größere Datenmengen über das Netzwerk zu kopieren: <pre>Die Datei ... konnte nicht kopiert werden. Der angegebene Netzwerkname ist nicht mehr verfügbar.</pre> Nach längerer Suche, fand ich heraus, das dies daran liegen kann, dass der Server der Übertragung (von dem Kopiert werden soll) glaubt, es handle sich bei den Zugriffen um einen [[DoS]] Angriff! Ein Blick in die Ereignisanzeige/System bestätigte dies: <pre>Der Server hat einen versuchten Dienstverweigerungsangriff von Client ... ermittelt. Der Server hat die Verbindung getrennt.</pre> Beheben kann man das wie folgt über Registry Einträge: <pre>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\MaxMxpCt = 50..65535 [[DWORD]</pre> Mein Vorschlag: 16384. 2048 funktionierte zuerst, größere Dateien schlugen aber immernoch fehl. Falls das nicht ausreicht, kann man die [[DoS]] detection auch ausschalten. '''(Achtung: Eingriff in die Sicherheit!)''' <pre>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableDos = 1 [[DWORD]</pre> ==Computer im LAN nicht mehr "sichtbar"== Wenn der Ping auf einen Computer nicht mehr funktioniert, d.h. wenn es dabei zu einer Zeitüberschreitung kommt, die Firewall aber entweder aus ist oder korrekt konfiguriert, und LAN Zugriffe durchlassen müsste, könnte es an folgender Einstellung liegen:<br> Für den betroffene Netzwerkadapter wurde NAT aktiviert ("Gemeinsame Nutzung der Internetverbindung"), wie es bei Servern gemacht wird oder auch auf dem einfach PC, auf dem man VMWare Virtual Machines benutzt, deren Netzwerkkarte als "NAT" konfiguriert ist, damit diese die LAN-Internet-Anbindung des Host-Systems nutzen können. Ist hierbei das Häkchen <pre>"Anderen Benutzern im Netzwerk gestatten, die gemeinsame Nutzung der Internetverbindung zu steuern oder zu deaktivieren."</pre> , kommt es zu oben beschriebenen Problem. d0acfacd4540d4d0aeb5823513c2b293189ba08f 41 40 2010-08-03T01:57:31Z Satria 1 /* Computer im LAN nicht mehr "sichtbar" */ wikitext text/x-wiki ==Abbruch beim Kopieren über Netzwerk== Es kommt vor, da meldet der PC beim Versuch, größere Datenmengen über das Netzwerk zu kopieren: <pre>Die Datei ... konnte nicht kopiert werden. Der angegebene Netzwerkname ist nicht mehr verfügbar.</pre> Nach längerer Suche, fand ich heraus, das dies daran liegen kann, dass der Server der Übertragung (von dem Kopiert werden soll) glaubt, es handle sich bei den Zugriffen um einen [[DoS]] Angriff! Ein Blick in die Ereignisanzeige/System bestätigte dies: <pre>Der Server hat einen versuchten Dienstverweigerungsangriff von Client ... ermittelt. Der Server hat die Verbindung getrennt.</pre> Beheben kann man das wie folgt über Registry Einträge: <pre>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\MaxMxpCt = 50..65535 [[DWORD]</pre> Mein Vorschlag: 16384. 2048 funktionierte zuerst, größere Dateien schlugen aber immernoch fehl. Falls das nicht ausreicht, kann man die [[DoS]] detection auch ausschalten. '''(Achtung: Eingriff in die Sicherheit!)''' <pre>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableDos = 1 [[DWORD]</pre> ==Computer im LAN nicht mehr "sichtbar"== Wenn der Ping auf einen Computer nicht mehr funktioniert, d.h. wenn es dabei zu einer Zeitüberschreitung kommt, die Firewall aber entweder aus ist oder korrekt konfiguriert, und LAN Zugriffe durchlassen müsste, könnte es an folgender Einstellung liegen: Für den betroffene Netzwerkadapter wurde NAT aktiviert ("Gemeinsame Nutzung der Internetverbindung"), wie es bei Servern mit mehr als 2 Netzwerkkarten gemacht wird oder auch auf dem einfach PC, auf dem man VMWare Virtual Machines benutzt, deren Netzwerkkarte als "NAT" konfiguriert ist, damit diese die LAN-Internet-Anbindung des Host-Systems nutzen können. Scheinbar willkürlich gibt es Systeme, die dann den ping verweigern und auch nicht mehr über NetBIOS (Ordnerfreigaben) erreichbar sind. 8f6284b48f2c003e9455f40e92570b0168aa8713 Hilfe:Bearbeiten 12 30 48 2010-08-11T11:08:02Z Satria 1 Die Seite wurde neu angelegt: „[[Formatting]]<br> [[HTML]]<br> [[Images & Uploads]]<br> [[Tables]]<br> [[TOC]]<br>“ wikitext text/x-wiki [[Formatting]]<br> [[HTML]]<br> [[Images & Uploads]]<br> [[Tables]]<br> [[TOC]]<br> 4740721e31aff6867b1490e149757bd81a02399f 54 48 2010-08-11T11:18:32Z Satria 1 wikitext text/x-wiki [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:Images|Bilder & Uploads]]<br> [[Help:Tables|Tabellen]]<br> [[Help:TOC|Inhalt]]<br> 68df7af7a2b03745578743660ec06eb0f824e78a 57 54 2010-08-11T11:25:49Z Satria 1 wikitext text/x-wiki [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:Images|Bilder & Uploads]]<br> [[Help:Tables|Tabellen]]<br> [[Help:TOC|Inhaltstabelle]]<br> 4050c808f2e7dd479f31b65dfd370e1af3abe053 59 57 2010-08-11T11:26:39Z Satria 1 wikitext text/x-wiki [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:Images|Bilder & Uploads]]<br> [[Help:Tables|Tabellen]]<br> [[Help:TOC|Inhaltsverzeichnis]]<br> cbf8297f508b326584f92c0fb663ae4972730c99 61 59 2010-08-11T11:30:00Z Satria 1 wikitext text/x-wiki [[Help:Images|Bilder & Uploads]]<br> [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:TOC|Inhaltsverzeichnis]]<br> [[Help:Links|Links]]<br> [[Help:Tables|Tabellen]]<br> 2e97b6697e73733c2822e9b81666048b3cc57b8d 62 61 2010-08-11T11:32:28Z Satria 1 wikitext text/x-wiki [[Help:Images|Bilder & Uploads]]<br> [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:TOC|Inhaltsverzeichnis]]<br> [[Help:Links|Links]]<br> [[Help:Tables|Tabellen]]<br> Quellen:<br> [http://www.mediawiki.org/wiki/Help:Contents Wikimedia Hilfe] 78fbf4526220ad7380f6146d05b5ac2dd6d958cf Hilfe:Inhaltsverzeichnis 12 32 50 2010-08-11T11:14:58Z Satria 1 Die Seite wurde neu angelegt: „[[Help:Bearbeiten|Bearbeiten]]“ wikitext text/x-wiki [[Help:Bearbeiten|Bearbeiten]] 9042a890a509efbb651368ad1f6d5bca15159d32 Hilfe:Formatierung 12 33 51 2010-08-11T11:16:23Z Satria 1 Die Seite wurde neu angelegt: „You can format your text using wiki markup. This consists of normal characters like asterisks, single quotes or equation marks which have a special function in th…“ wikitext text/x-wiki You can format your text using wiki markup. This consists of normal characters like asterisks, single quotes or equation marks which have a special function in the wiki, sometimes depending on their position. For example, to format a word in ''italic'', you include it in two single quotes like <code><nowiki>''this''</nowiki></code>. == Text formatting markup == {| class="wikitable" ! Description ! width=40% | You type ! width=40% | You get |- ! colspan="3" style="background:#ABE" | character (inline) formatting – ''applies anywhere'' |- | Italic text | <pre> ''italic'' </pre> | ''italic'' |- | Bold text | <pre> '''bold''' </pre> | '''bold''' |- | Bold and italic | <pre> '''''bold & italic''''' </pre> | '''''bold & italic''''' |- | Escape wiki markup | <pre> &lt;nowiki>no ''markup''</nowiki&gt; </pre> | <nowiki>no ''markup''</nowiki> |- ! colspan="3" style="background:#ABE" | section formatting – ''only at the beginning of the line'' |- | Headings of different levels | <pre> = Level 1 = == Level 2 == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== </pre> ---- NOTE: An article with 4 or more headings automatically creates a [[TOC|table of contents]]. | = Level 1 = == Level 2 == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== |- | Horizontal rule | <pre> Text above ---- Text below </pre> | Text above ---- Text below |- | Bullet list | <pre> * Start each line * with an [[Wikipedia:asterisk|asterisk]] (*). ** More asterisks gives deeper *** and deeper levels. * Line breaks<br />don't break levels. *** But jumping levels creates empty space. Any other first character ends the list. </pre> | * Start each line * with an [[Wikipedia:asterisk|asterisk]] (*). ** More asterisks gives deeper *** and deeper levels. * Line breaks<br />don't break levels. *** But jumping levels creates empty space. Any other first character ends the list. |- | Numbered list | <pre> # Start each line # with a [[Wikipedia:Number_sign|number sign]] (#). ## More number signs gives deeper ### and deeper ### levels. # Line breaks<br />don't break levels. ### But jumping levels creates empty space. # Blank lines # end the list and start another. Any other first character also ends the list. </pre> | # Start each line # with a [[Wikipedia:Number_sign|number sign]] (#). ## More number signs gives deeper ### and deeper ### levels. # Line breaks<br />don't break levels. ### But jumping levels creates empty space. # Blank lines # end the list and start another. Any other first character also ends the list. |- | Definition list | <pre> ;item 1 : definition 1 ;item 2 : definition 2-1 : definition 2-2 </pre> | ;item 1 : definition 1 ;item 2 : definition 2-1 : definition 2-2 |- | Adopting definition list to indent text | <pre> : Single indent :: Double indent ::::: Multiple indent </pre> ---- NOTE: This workaround may be controversial from the viewpoint of accessibility. | : Single indent :: Double indent ::::: Multiple indent |- | Mixture of different types of list | <pre> # one # two #* two point one #* two point two # three #; three item one #: three def one # four #: four def one #: this looks like a continuation #: and is often used #: instead<br />of &lt;nowiki><br />&lt;/nowiki> # five ## five sub 1 ### five sub 1 sub 1 ## five sub 2 </pre> ---- NOTE: The usage of <code>#:</code> and <code>*:</code> for breaking a line within an item may also be controversial. | # one # two #* two point one #* two point two # three #; three item one #: three def one # four #: four def one #: this looks like a continuation #: and is often used #: instead<br />of <nowiki><br /></nowiki> # five ## five sub 1 ### five sub 1 sub 1 ## five sub 2 |- | Preformatted text | <pre> Start each line with a space. Text is '''preformatted''' and ''markups'' '''''can''''' be done </pre> ---- NOTE: This way of preformatting only applies to section formatting. Character formatting markups are still effective. | Start each line with a space. Text is '''preformatted''' and ''markups'' '''''can''''' be done |} == Paragraphs == MediaWiki ignores single line breaks. To start a new paragraph, leave an empty line. You can force a line break within a paragraph with the HTML tags <code>&lt;br /></code>. == HTML tags == Some [[HTML]] tags are allowed in MediaWiki, for example <code>&lt;code></code>, <code>&lt;div></code>, <code><nowiki><span></nowiki></code> and <code><nowiki><font></nowiki></code>. These apply anywhere you insert them. {| class="wikitable" ! Description ! width=40% | You type ! width=40% | You get |- | Underscore | <pre> <u>underscore</u> </pre> | <u>underscore</u> |- | Strikethrough | <pre> <del>Strikethrough</del> or <s>Strikethrough</s> </pre> | <del>Strikethrough</del> or <s>Strikethrough</s> |- | Fixed width text | <pre> <code>Source code</code> or <tt>Fixed width text</tt> </pre> | <code>Source code</code> or <tt>Fixed width text</tt> |- | Blockquotes | <pre> text above text above <blockquote>blockquote</blockquote> text below text below </pre> | text above text above <blockquote>blockquote</blockquote> text below text below |- | Comment | <pre> <!-- This is a comment --> Comments are only visible in the edit window. </pre> | <!-- This is a comment --> Comments are only visible in the edit window. |- | Completely preformatted text | <pre> <pre> Text is '''preformatted''' and ''markups'' '''''cannot''''' be done&lt;/pre> </pre> ---- NOTE: For marking up of preformatted text, check the "Preformatted text" entry at the bottom of the previous table. | <pre> Text is '''preformatted''' and ''markups'' '''''cannot''''' be done</pre> </pre> |- | '''Customized''' preformatted text | <pre> <pre style="color:red"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done &lt;/pre> </pre> ---- NOTE: A CSS style can be named within the <code>style</code> property. | <pre style="color:red"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done </pre> |} == HTML symbols == An HTML symbol entity is a sequence of characters that produces one particular character. For example, <code>&amp;rarr;</code> produces a right arrow "<code>&rarr;</code>" and <code>&amp;mdash;</code> produces an em dash "<code>&mdash;</code>". HTML symbol entities are allowed in MediaWiki and are sometimes used in advanced editing for two main reasons: to insert characters not normally available on keyboards: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' and to prevent the parser from interpreting and displaying HTML tags and symbols: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&amp;lt;span style="color:green;">Green&amp;lt;/span></tt>&nbsp;&rarr; '''<tt>&lt;span style="color:green;">Green&lt;/span></tt>''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' The following is a list of characters that can be produced using HTML symbols. Hover any character to find out the symbol that produces it. Some symbols not available in the current font will appear as empty squares. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} == Other formatting == Beyond the text formatting markup shown above, here are some other formatting references: * [[Help:Links|Links]] * [[Help:Images|Images & Uploads]] * [[Help:Tables|Tables]] [[Category:Help|Formatting]] 1e620357dfcf0650881f5df114dada4b43ef05f9 52 51 2010-08-11T11:17:25Z Satria 1 hat „[[Hilfe:Formatting]]“ nach „[[Hilfe:Formatierung]]“ verschoben:&#32;EN -> DE wikitext text/x-wiki You can format your text using wiki markup. This consists of normal characters like asterisks, single quotes or equation marks which have a special function in the wiki, sometimes depending on their position. For example, to format a word in ''italic'', you include it in two single quotes like <code><nowiki>''this''</nowiki></code>. == Text formatting markup == {| class="wikitable" ! Description ! width=40% | You type ! width=40% | You get |- ! colspan="3" style="background:#ABE" | character (inline) formatting – ''applies anywhere'' |- | Italic text | <pre> ''italic'' </pre> | ''italic'' |- | Bold text | <pre> '''bold''' </pre> | '''bold''' |- | Bold and italic | <pre> '''''bold & italic''''' </pre> | '''''bold & italic''''' |- | Escape wiki markup | <pre> &lt;nowiki>no ''markup''</nowiki&gt; </pre> | <nowiki>no ''markup''</nowiki> |- ! colspan="3" style="background:#ABE" | section formatting – ''only at the beginning of the line'' |- | Headings of different levels | <pre> = Level 1 = == Level 2 == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== </pre> ---- NOTE: An article with 4 or more headings automatically creates a [[TOC|table of contents]]. | = Level 1 = == Level 2 == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== |- | Horizontal rule | <pre> Text above ---- Text below </pre> | Text above ---- Text below |- | Bullet list | <pre> * Start each line * with an [[Wikipedia:asterisk|asterisk]] (*). ** More asterisks gives deeper *** and deeper levels. * Line breaks<br />don't break levels. *** But jumping levels creates empty space. Any other first character ends the list. </pre> | * Start each line * with an [[Wikipedia:asterisk|asterisk]] (*). ** More asterisks gives deeper *** and deeper levels. * Line breaks<br />don't break levels. *** But jumping levels creates empty space. Any other first character ends the list. |- | Numbered list | <pre> # Start each line # with a [[Wikipedia:Number_sign|number sign]] (#). ## More number signs gives deeper ### and deeper ### levels. # Line breaks<br />don't break levels. ### But jumping levels creates empty space. # Blank lines # end the list and start another. Any other first character also ends the list. </pre> | # Start each line # with a [[Wikipedia:Number_sign|number sign]] (#). ## More number signs gives deeper ### and deeper ### levels. # Line breaks<br />don't break levels. ### But jumping levels creates empty space. # Blank lines # end the list and start another. Any other first character also ends the list. |- | Definition list | <pre> ;item 1 : definition 1 ;item 2 : definition 2-1 : definition 2-2 </pre> | ;item 1 : definition 1 ;item 2 : definition 2-1 : definition 2-2 |- | Adopting definition list to indent text | <pre> : Single indent :: Double indent ::::: Multiple indent </pre> ---- NOTE: This workaround may be controversial from the viewpoint of accessibility. | : Single indent :: Double indent ::::: Multiple indent |- | Mixture of different types of list | <pre> # one # two #* two point one #* two point two # three #; three item one #: three def one # four #: four def one #: this looks like a continuation #: and is often used #: instead<br />of &lt;nowiki><br />&lt;/nowiki> # five ## five sub 1 ### five sub 1 sub 1 ## five sub 2 </pre> ---- NOTE: The usage of <code>#:</code> and <code>*:</code> for breaking a line within an item may also be controversial. | # one # two #* two point one #* two point two # three #; three item one #: three def one # four #: four def one #: this looks like a continuation #: and is often used #: instead<br />of <nowiki><br /></nowiki> # five ## five sub 1 ### five sub 1 sub 1 ## five sub 2 |- | Preformatted text | <pre> Start each line with a space. Text is '''preformatted''' and ''markups'' '''''can''''' be done </pre> ---- NOTE: This way of preformatting only applies to section formatting. Character formatting markups are still effective. | Start each line with a space. Text is '''preformatted''' and ''markups'' '''''can''''' be done |} == Paragraphs == MediaWiki ignores single line breaks. To start a new paragraph, leave an empty line. You can force a line break within a paragraph with the HTML tags <code>&lt;br /></code>. == HTML tags == Some [[HTML]] tags are allowed in MediaWiki, for example <code>&lt;code></code>, <code>&lt;div></code>, <code><nowiki><span></nowiki></code> and <code><nowiki><font></nowiki></code>. These apply anywhere you insert them. {| class="wikitable" ! Description ! width=40% | You type ! width=40% | You get |- | Underscore | <pre> <u>underscore</u> </pre> | <u>underscore</u> |- | Strikethrough | <pre> <del>Strikethrough</del> or <s>Strikethrough</s> </pre> | <del>Strikethrough</del> or <s>Strikethrough</s> |- | Fixed width text | <pre> <code>Source code</code> or <tt>Fixed width text</tt> </pre> | <code>Source code</code> or <tt>Fixed width text</tt> |- | Blockquotes | <pre> text above text above <blockquote>blockquote</blockquote> text below text below </pre> | text above text above <blockquote>blockquote</blockquote> text below text below |- | Comment | <pre> <!-- This is a comment --> Comments are only visible in the edit window. </pre> | <!-- This is a comment --> Comments are only visible in the edit window. |- | Completely preformatted text | <pre> <pre> Text is '''preformatted''' and ''markups'' '''''cannot''''' be done&lt;/pre> </pre> ---- NOTE: For marking up of preformatted text, check the "Preformatted text" entry at the bottom of the previous table. | <pre> Text is '''preformatted''' and ''markups'' '''''cannot''''' be done</pre> </pre> |- | '''Customized''' preformatted text | <pre> <pre style="color:red"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done &lt;/pre> </pre> ---- NOTE: A CSS style can be named within the <code>style</code> property. | <pre style="color:red"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done </pre> |} == HTML symbols == An HTML symbol entity is a sequence of characters that produces one particular character. For example, <code>&amp;rarr;</code> produces a right arrow "<code>&rarr;</code>" and <code>&amp;mdash;</code> produces an em dash "<code>&mdash;</code>". HTML symbol entities are allowed in MediaWiki and are sometimes used in advanced editing for two main reasons: to insert characters not normally available on keyboards: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' and to prevent the parser from interpreting and displaying HTML tags and symbols: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&amp;lt;span style="color:green;">Green&amp;lt;/span></tt>&nbsp;&rarr; '''<tt>&lt;span style="color:green;">Green&lt;/span></tt>''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' The following is a list of characters that can be produced using HTML symbols. Hover any character to find out the symbol that produces it. Some symbols not available in the current font will appear as empty squares. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} == Other formatting == Beyond the text formatting markup shown above, here are some other formatting references: * [[Help:Links|Links]] * [[Help:Images|Images & Uploads]] * [[Help:Tables|Tables]] [[Category:Help|Formatting]] 1e620357dfcf0650881f5df114dada4b43ef05f9 55 52 2010-08-11T11:23:15Z Satria 1 wikitext text/x-wiki Mithilfe eines speziellen Wiki-Markups ist es möglich, Text zu formatieren. Dafür werden normale Zeichen wie Sternchen, einfache Anführungsstriche oder Gleichheitszeichen verwendet. Um ein Wort beispielsweise ''kursiv'' zu schreiben, setzt man es in zwei einfache Anführungsstriche. Im Code würde das so aussehen: <code><nowiki>''kursiv''</nowiki></code>. == Absätze/ Zeilenumbrüche == Mediawiki ignoriert Absätze am Zeilenende. Um einen neuen Absatz zu beginnen muss man eine leere Zeile einfügen. TIP: Man kann über die Verwendung von HTML-Code einen Zeilenumbruch erzwingen. <code><nowiki><br /></nowiki></code> == HTML == In MediaWiki sind einige HTML-Tags erlaubt. Zum Beispiel <code><nowiki><code></nowiki></code>, <code><nowiki><div></nowiki></code>, <code><nowiki><span></nowiki></code> und <code><nowiki><font></nowiki></code>. TIP: Bei einem geschlossenen Benutzerkreis kann man HTML voll zulassen über die Einstellung <code>$wgRawHtml = true;</code> in der LocalSettings.php. HTML-Code deaktiviert man vollständig mit <code>$wgUserHtml = false;</code>.}} == Übersichtstabelle == {| |- ||'''Beschreibung''' ||'''Wiki-Code''' ||'''Ausgabe''' |- | colspan="3" align="center" | ''überall anwendbar'' |- |Italic (kursiver) Text |<code><nowiki>''italic''</nowiki></code> |''italic'' |- | Bold (fetter) Text |<code><nowiki>'''bold'''</nowiki></code> |'''bold''' |- | Bold und italic (fett und kursiv) |<code><nowiki>'''''bold & italic'''''</nowiki></code> |'''''bold & italic''''' |- |Unterbinden des Wiki-Markup |<code><nowiki><nowiki>kein ''Markup''</nowiki></nowiki></code> |<nowiki>kein ''Markup''</nowiki> |- | colspan="3" align="center" | ''nur am Beginn einer neuen Zeile anwendbar'' |- |Überschriften<br /> in verschiedenen Grössen | <code><nowiki>=Level 1=</nowiki></code><br /> <code><nowiki>==Level 2==</nowiki></code><br /> <code><nowiki>===Level 3===</nowiki></code><br /> <code><nowiki>====Level 4====</nowiki></code><br /> <code><nowiki>=====Level 5=====</nowiki></code><br /> <code><nowiki>======Level 6======</nowiki></code> | =Level 1= ==Level 2== ===Level 3=== ====Level 4==== =====Level 5===== ======Level 6====== |- |Horizontale Linie | <code><nowiki>----</nowiki></code> | ---- |- |ungeordnete Liste | &#42; erste Zeile<br> &#42; zweite Zeile<br> &#42; dritte Zeile<br> &#42;&#42; dritte Zeile,erster Unterpunkt<br> &#42;&#42; dritte Zeile,zweiter Unterpunkt<br> | * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile,erster Unterpunkt ** dritte Zeile,zweiter Unterpunkt |- |geordnete Liste | &#35; erste Zeile<br /> &#35; zweite Zeile<br /> &#35; dritte Zeile<br /> &#35;&#35; dritte Zeile,erster Unterpunkt<br> &#35;&#35; dritte Zeile,zweiter Unterpunkt<br> | # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile,erster Unterpunkt ## dritte Zeile,zweiter Unterpunkt |- |Definitionsliste | &#59;Definition<br /> &#58;Beschreibung 1<br /> &#58;Beschreibung 2<br /> | ;Definition :Beschreibung 1 :Beschreibung 2 |- |Vorformatierter Text | &nbsp;&nbsp;ein Leerzeichen am<br /> &nbsp;&nbsp;Anfang einer Zeile<br /> &nbsp;&nbsp;erstellt ein solches<br /> &nbsp;&nbsp;Textfeld | ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld |} [[Help:Formatting|Formatting (Englisch)]] __NOTOC__ __NOEDITSECTION__ 480c2054980e99b14e31787b14b4c609f5a30830 Hilfe:Formatting 12 35 56 2010-08-11T11:25:40Z Satria 1 Die Seite wurde neu angelegt: „You can format your text using wiki markup. This consists of normal characters like asterisks, single quotes or equation marks which have a special function in th…“ wikitext text/x-wiki You can format your text using wiki markup. This consists of normal characters like asterisks, single quotes or equation marks which have a special function in the wiki, sometimes depending on their position. For example, to format a word in ''italic'', you include it in two single quotes like <code><nowiki>''this''</nowiki></code>. == Text formatting markup == {| class="wikitable" ! Description ! width=40% | You type ! width=40% | You get |- ! colspan="3" style="background:#ABE" | character (inline) formatting – ''applies anywhere'' |- | Italic text | <pre> ''italic'' </pre> | ''italic'' |- | Bold text | <pre> '''bold''' </pre> | '''bold''' |- | Bold and italic | <pre> '''''bold & italic''''' </pre> | '''''bold & italic''''' |- | Escape wiki markup | <pre> &lt;nowiki>no ''markup''</nowiki&gt; </pre> | <nowiki>no ''markup''</nowiki> |- ! colspan="3" style="background:#ABE" | section formatting – ''only at the beginning of the line'' |- | Headings of different levels | <pre> = Level 1 = == Level 2 == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== </pre> ---- NOTE: An article with 4 or more headings automatically creates a [[Help:TOC|Inhaltstabelle]]. | = Level 1 = == Level 2 == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== |- | Horizontal rule | <pre> Text above ---- Text below </pre> | Text above ---- Text below |- | Bullet list | <pre> * Start each line * with an [[Wikipedia:asterisk|asterisk]] (*). ** More asterisks gives deeper *** and deeper levels. * Line breaks<br />don't break levels. *** But jumping levels creates empty space. Any other first character ends the list. </pre> | * Start each line * with an [[Wikipedia:asterisk|asterisk]] (*). ** More asterisks gives deeper *** and deeper levels. * Line breaks<br />don't break levels. *** But jumping levels creates empty space. Any other first character ends the list. |- | Numbered list | <pre> # Start each line # with a [[Wikipedia:Number_sign|number sign]] (#). ## More number signs gives deeper ### and deeper ### levels. # Line breaks<br />don't break levels. ### But jumping levels creates empty space. # Blank lines # end the list and start another. Any other first character also ends the list. </pre> | # Start each line # with a [[Wikipedia:Number_sign|number sign]] (#). ## More number signs gives deeper ### and deeper ### levels. # Line breaks<br />don't break levels. ### But jumping levels creates empty space. # Blank lines # end the list and start another. Any other first character also ends the list. |- | Definition list | <pre> ;item 1 : definition 1 ;item 2 : definition 2-1 : definition 2-2 </pre> | ;item 1 : definition 1 ;item 2 : definition 2-1 : definition 2-2 |- | Adopting definition list to indent text | <pre> : Single indent :: Double indent ::::: Multiple indent </pre> ---- NOTE: This workaround may be controversial from the viewpoint of accessibility. | : Single indent :: Double indent ::::: Multiple indent |- | Mixture of different types of list | <pre> # one # two #* two point one #* two point two # three #; three item one #: three def one # four #: four def one #: this looks like a continuation #: and is often used #: instead<br />of &lt;nowiki><br />&lt;/nowiki> # five ## five sub 1 ### five sub 1 sub 1 ## five sub 2 </pre> ---- NOTE: The usage of <code>#:</code> and <code>*:</code> for breaking a line within an item may also be controversial. | # one # two #* two point one #* two point two # three #; three item one #: three def one # four #: four def one #: this looks like a continuation #: and is often used #: instead<br />of <nowiki><br /></nowiki> # five ## five sub 1 ### five sub 1 sub 1 ## five sub 2 |- | Preformatted text | <pre> Start each line with a space. Text is '''preformatted''' and ''markups'' '''''can''''' be done </pre> ---- NOTE: This way of preformatting only applies to section formatting. Character formatting markups are still effective. | Start each line with a space. Text is '''preformatted''' and ''markups'' '''''can''''' be done |} == Paragraphs == MediaWiki ignores single line breaks. To start a new paragraph, leave an empty line. You can force a line break within a paragraph with the HTML tags <code>&lt;br /></code>. == HTML tags == Some [[wikipedia:HTML|HTML]] tags are allowed in MediaWiki, for example <code>&lt;code></code>, <code>&lt;div></code>, <code><nowiki><span></nowiki></code> and <code><nowiki><font></nowiki></code>. These apply anywhere you insert them. {| class="wikitable" ! Description ! width=40% | You type ! width=40% | You get |- | Underscore | <pre> <u>underscore</u> </pre> | <u>underscore</u> |- | Strikethrough | <pre> <del>Strikethrough</del> or <s>Strikethrough</s> </pre> | <del>Strikethrough</del> or <s>Strikethrough</s> |- | Fixed width text | <pre> <code>Source code</code> or <tt>Fixed width text</tt> </pre> | <code>Source code</code> or <tt>Fixed width text</tt> |- | Blockquotes | <pre> text above text above <blockquote>blockquote</blockquote> text below text below </pre> | text above text above <blockquote>blockquote</blockquote> text below text below |- | Comment | <pre> <!-- This is a comment --> Comments are only visible in the edit window. </pre> | <!-- This is a comment --> Comments are only visible in the edit window. |- | Completely preformatted text | <pre> <pre> Text is '''preformatted''' and ''markups'' '''''cannot''''' be done&lt;/pre> </pre> ---- NOTE: For marking up of preformatted text, check the "Preformatted text" entry at the bottom of the previous table. | <pre> Text is '''preformatted''' and ''markups'' '''''cannot''''' be done</pre> </pre> |- | '''Customized''' preformatted text | <pre> <pre style="color:red"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done &lt;/pre> </pre> ---- NOTE: A CSS style can be named within the <code>style</code> property. | <pre style="color:red"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done </pre> |} == HTML symbols == An HTML symbol entity is a sequence of characters that produces one particular character. For example, <code>&amp;rarr;</code> produces a right arrow "<code>&rarr;</code>" and <code>&amp;mdash;</code> produces an em dash "<code>&mdash;</code>". HTML symbol entities are allowed in MediaWiki and are sometimes used in advanced editing for two main reasons: to insert characters not normally available on keyboards: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' and to prevent the parser from interpreting and displaying HTML tags and symbols: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&amp;lt;span style="color:green;">Green&amp;lt;/span></tt>&nbsp;&rarr; '''<tt>&lt;span style="color:green;">Green&lt;/span></tt>''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' The following is a list of characters that can be produced using HTML symbols. Hover any character to find out the symbol that produces it. Some symbols not available in the current font will appear as empty squares. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} == Other formatting == Beyond the text formatting markup shown above, here are some other formatting references: * [[Help:Images|Images]] * [[Help:Tables|Tables]] [[Category:Help|Formatting]] 1d62cc03f5e063c4d277da8cec33cda92d21483a 58 56 2010-08-11T11:26:30Z Satria 1 wikitext text/x-wiki You can format your text using wiki markup. This consists of normal characters like asterisks, single quotes or equation marks which have a special function in the wiki, sometimes depending on their position. For example, to format a word in ''italic'', you include it in two single quotes like <code><nowiki>''this''</nowiki></code>. == Text formatting markup == {| class="wikitable" ! Description ! width=40% | You type ! width=40% | You get |- ! colspan="3" style="background:#ABE" | character (inline) formatting – ''applies anywhere'' |- | Italic text | <pre> ''italic'' </pre> | ''italic'' |- | Bold text | <pre> '''bold''' </pre> | '''bold''' |- | Bold and italic | <pre> '''''bold & italic''''' </pre> | '''''bold & italic''''' |- | Escape wiki markup | <pre> &lt;nowiki>no ''markup''</nowiki&gt; </pre> | <nowiki>no ''markup''</nowiki> |- ! colspan="3" style="background:#ABE" | section formatting – ''only at the beginning of the line'' |- | Headings of different levels | <pre> = Level 1 = == Level 2 == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== </pre> ---- NOTE: An article with 4 or more headings automatically creates a [[Help:TOC|table of contents]]. | = Level 1 = == Level 2 == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== |- | Horizontal rule | <pre> Text above ---- Text below </pre> | Text above ---- Text below |- | Bullet list | <pre> * Start each line * with an [[Wikipedia:asterisk|asterisk]] (*). ** More asterisks gives deeper *** and deeper levels. * Line breaks<br />don't break levels. *** But jumping levels creates empty space. Any other first character ends the list. </pre> | * Start each line * with an [[Wikipedia:asterisk|asterisk]] (*). ** More asterisks gives deeper *** and deeper levels. * Line breaks<br />don't break levels. *** But jumping levels creates empty space. Any other first character ends the list. |- | Numbered list | <pre> # Start each line # with a [[Wikipedia:Number_sign|number sign]] (#). ## More number signs gives deeper ### and deeper ### levels. # Line breaks<br />don't break levels. ### But jumping levels creates empty space. # Blank lines # end the list and start another. Any other first character also ends the list. </pre> | # Start each line # with a [[Wikipedia:Number_sign|number sign]] (#). ## More number signs gives deeper ### and deeper ### levels. # Line breaks<br />don't break levels. ### But jumping levels creates empty space. # Blank lines # end the list and start another. Any other first character also ends the list. |- | Definition list | <pre> ;item 1 : definition 1 ;item 2 : definition 2-1 : definition 2-2 </pre> | ;item 1 : definition 1 ;item 2 : definition 2-1 : definition 2-2 |- | Adopting definition list to indent text | <pre> : Single indent :: Double indent ::::: Multiple indent </pre> ---- NOTE: This workaround may be controversial from the viewpoint of accessibility. | : Single indent :: Double indent ::::: Multiple indent |- | Mixture of different types of list | <pre> # one # two #* two point one #* two point two # three #; three item one #: three def one # four #: four def one #: this looks like a continuation #: and is often used #: instead<br />of &lt;nowiki><br />&lt;/nowiki> # five ## five sub 1 ### five sub 1 sub 1 ## five sub 2 </pre> ---- NOTE: The usage of <code>#:</code> and <code>*:</code> for breaking a line within an item may also be controversial. | # one # two #* two point one #* two point two # three #; three item one #: three def one # four #: four def one #: this looks like a continuation #: and is often used #: instead<br />of <nowiki><br /></nowiki> # five ## five sub 1 ### five sub 1 sub 1 ## five sub 2 |- | Preformatted text | <pre> Start each line with a space. Text is '''preformatted''' and ''markups'' '''''can''''' be done </pre> ---- NOTE: This way of preformatting only applies to section formatting. Character formatting markups are still effective. | Start each line with a space. Text is '''preformatted''' and ''markups'' '''''can''''' be done |} == Paragraphs == MediaWiki ignores single line breaks. To start a new paragraph, leave an empty line. You can force a line break within a paragraph with the HTML tags <code>&lt;br /></code>. == HTML tags == Some [[wikipedia:HTML|HTML]] tags are allowed in MediaWiki, for example <code>&lt;code></code>, <code>&lt;div></code>, <code><nowiki><span></nowiki></code> and <code><nowiki><font></nowiki></code>. These apply anywhere you insert them. {| class="wikitable" ! Description ! width=40% | You type ! width=40% | You get |- | Underscore | <pre> <u>underscore</u> </pre> | <u>underscore</u> |- | Strikethrough | <pre> <del>Strikethrough</del> or <s>Strikethrough</s> </pre> | <del>Strikethrough</del> or <s>Strikethrough</s> |- | Fixed width text | <pre> <code>Source code</code> or <tt>Fixed width text</tt> </pre> | <code>Source code</code> or <tt>Fixed width text</tt> |- | Blockquotes | <pre> text above text above <blockquote>blockquote</blockquote> text below text below </pre> | text above text above <blockquote>blockquote</blockquote> text below text below |- | Comment | <pre> <!-- This is a comment --> Comments are only visible in the edit window. </pre> | <!-- This is a comment --> Comments are only visible in the edit window. |- | Completely preformatted text | <pre> <pre> Text is '''preformatted''' and ''markups'' '''''cannot''''' be done&lt;/pre> </pre> ---- NOTE: For marking up of preformatted text, check the "Preformatted text" entry at the bottom of the previous table. | <pre> Text is '''preformatted''' and ''markups'' '''''cannot''''' be done</pre> </pre> |- | '''Customized''' preformatted text | <pre> <pre style="color:red"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done &lt;/pre> </pre> ---- NOTE: A CSS style can be named within the <code>style</code> property. | <pre style="color:red"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done </pre> |} == HTML symbols == An HTML symbol entity is a sequence of characters that produces one particular character. For example, <code>&amp;rarr;</code> produces a right arrow "<code>&rarr;</code>" and <code>&amp;mdash;</code> produces an em dash "<code>&mdash;</code>". HTML symbol entities are allowed in MediaWiki and are sometimes used in advanced editing for two main reasons: to insert characters not normally available on keyboards: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' and to prevent the parser from interpreting and displaying HTML tags and symbols: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&amp;lt;span style="color:green;">Green&amp;lt;/span></tt>&nbsp;&rarr; '''<tt>&lt;span style="color:green;">Green&lt;/span></tt>''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' The following is a list of characters that can be produced using HTML symbols. Hover any character to find out the symbol that produces it. Some symbols not available in the current font will appear as empty squares. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} == Other formatting == Beyond the text formatting markup shown above, here are some other formatting references: * [[Help:Images|Images]] * [[Help:Tables|Tables]] [[Category:Help|Formatting]] 702696821256b6aa3c9af5d041015c84f57ae063 Hilfe:Images 12 36 60 2010-08-11T11:29:29Z Satria 1 Die Seite wurde neu angelegt: „==Syntax== Normalerweise würdest Du '''erst ein Bild in das Wiki hochladen''' (siehe [[Help:Managing files/de]]) ''bevor'' Du den folgenden Wikitext verwendest, …“ wikitext text/x-wiki ==Syntax== Normalerweise würdest Du '''erst ein Bild in das Wiki hochladen''' (siehe [[Help:Managing files/de]]) ''bevor'' Du den folgenden Wikitext verwendest, um das Bild im Artikel einzubinden. In der deutschen MediaWiki Version kann statt <tt>File:</tt> auch <tt>Datei:</tt> verwendet werden (<tt>Image:</tt> bzw. <tt>Bild:</tt> funktionieren aus Kompatibilitätsgründen weiterhin, siehe Absatz ''Configuration changes in 1.14'' in den [http://svn.wikimedia.org/viewvc/mediawiki/branches/REL1_14/phase3/RELEASE-NOTES?view=markup Release Notes]). <div style="border:1px solid #fff; padding-left: 0.5em !important; background-color:transparent; border-width:0 0 0 0.5em; clear:both"> {| class='wikitable' |- ||'''Beschreibung''' ||'''Wiki Code''' ||'''Ausgabe''' |- |Eingebettetes Bild<br /> (mit alt Text) | <code><nowiki>[[File:Example.jpg|Sonnenblumen]]</nowiki></code> | [[File:Example.jpg|Sonnenblumen]] |- |Link zu einer Bildseite | <code><nowiki>[[:File:Example.jpg]]</nowiki></code><br /> <code><nowiki>[[:File:Example.jpg|Sonnenblumen]]</nowiki></code> | [[:File:Example.jpg]]<br /> [[:File:Example.jpg|Sonnenblumen]] |- |direkter Link zur Bilddatei | <code><nowiki>[[Media:Example.jpg]]</nowiki></code><br /> <code><nowiki>[[Media:Example.jpg|Sonnenblumen]]</nowiki></code> | [[Media:Example.jpg]]<br /> [[Media:Example.jpg|Sonnenblumen]] |- |Thumbnail<br /> (zentriert, 100 Pixel<br /> breite, mit Beschriftung) | <code><nowiki>[[File:Example.jpg|center|thumb|100px|Sonnenblumen]]</nowiki></code> | [[File:Example.jpg|center|thumb|100px|Sonnenblumen]] |} </div> Um ein Bild oder eine andere Datei einbinden zu können, die [[Help:Managing files/de|hochgeladen wurde]], verwende: *<code><nowiki>[[File:Example.jpg]]</nowiki></code> Wenn du einen Hochstrich (|) und etwas Text nach dem Dateinamen eingibst, wird der Text als alternativer Text für nur Text Browser verwendet. Notwendig ist diese Angabe jedoch auch für ein barrierefreies Internet zum Beispiel für Menschen mit Sehbehinderung. *<code><nowiki>[[File:Example.jpg|alternative Text]]</nowiki></code> Falls das Bild nicht angezeigt werden soll, kann ein direkter Link auf die Bild Beschreibungsseite, durch hinzufügen eines Doppelpunktes, erfolgen. *<code><nowiki>[[:File:Example.jpg]]</nowiki></code> Um die Bild Beschreibungsseite zu umgehen und direkt zu der Datei zu linken muss der Pseudo Namespace "Media" verwendet werden. *<code><nowiki>[[Media:Example.jpg]]</nowiki></code> Alternativ kann auch ein abweichender Text angezeigt werden. *<code><nowiki>[[:File:Example.jpg|link text]]</nowiki></code> *<code><nowiki>[[Media:Example.jpg|link text]]</nowiki></code> ===erweiterte Optionen=== Die komplette Syntax um ein Bild anzuzeigen ist: <code><nowiki>[[File:{name}|{options}]]</nowiki></code> Optionen müssen nicht gewählt werden. Bei mehreren müssen diese mit horizontalen Strichen getrennt werden: *<code>thumb</code> oder <code>thumbnail</code>, <code>frame</code>: steuert wie ein Bild formatiert wird *<code>left</code>, <code>right</code>, <code>center</code>, <code>none</code>: steuert die Ausrichtung eines Bildes auf der Seite *<code>{width}px</code>: passt die Grösse entsprechend der gegebenen Breite an (Beispiel: <code><nowiki>[[Bild:logo.jpg|80px]])</nowiki></code> *<code>{caption text}</code> Die Optionen können in jeder beliebigen Reihenfolge stehen. Wenn eine eingegebene Option nicht mit den aufgeführten übereinstimmt, wird diese als Untertitel verwendet. Untertitel können [[Help:Contents/de | Links]] oder andere [[Help:Formatting/de | Formatierungen]] enthalten. ===Galerie mit Bildern=== Es ist recht einfach eine Bildergalerie mit Thumbnails zu erstellen. Die Syntax hierfür lautet: <code><nowiki> <gallery> File:{dateiname}|{Beschreibung} File:{dateiname}|{Beschreibung} {...} </gallery> </nowiki></code> Zum Beispiel wird <nowiki><gallery> File:Example.jpg|Item 1 File:Example.jpg|a link to [[Help:Contents]] File:Example.jpg File:Example.jpg File:Example.jpg|''italic caption'' </gallery></nowiki> wie folgt ausgegeben: <gallery> File:Example.jpg|Item 1 File:Example.jpg|a link to [[Help:Links]] File:Example.jpg File:Example.jpg File:Example.jpg|''italic caption'' </gallery> ==andere Dateien== Um auf eine externe Datei zu linken kann die selbe Syntax verwendet werden, wie für [[Help:Links|Links auf eine externe Webseite]]. *<code><nowiki>[http://url.for/some/image.png]</nowiki></code> Oder mit einem anderen Text: *<code><nowiki>[http://url.for/some/image.png link text here]</nowiki></code> Falls die Einstellung [[Manual:$wgAllowExternalImages|$wgAllowExternalImages]] aktiviert ist, können externe Bilder auch eingebunden werden. Dieses geht einfach durch Einfügen der URL. *<code><nowiki>http://url.for/some/image.png</nowiki></code> == Hilfreiche Links == [http://www.mediawiki.org/wiki/Manual:Image_Administration/de Administration von Bildern/Dateien] 219ab71f2dc621c1cd50286520ab03b6e0c8e1e1 Hilfe:Bearbeiten 12 30 63 62 2010-08-11T11:33:00Z Satria 1 wikitext text/x-wiki ===Wichtige Themen=== [[Help:Images|Bilder & Uploads]]<br> [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:TOC|Inhaltsverzeichnis]]<br> [[Help:Links|Links]]<br> [[Help:Tables|Tabellen]]<br> ===Quellen=== [http://www.mediawiki.org/wiki/Help:Contents Wikimedia Hilfe] 862f7efaa959f197db89732f777b618e78366691 64 63 2010-08-11T11:33:10Z Satria 1 wikitext text/x-wiki ===Wichtige Themen=== [[Help:Images|Bilder & Uploads]]<br> [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:TOC|Inhaltsverzeichnis]]<br> [[Help:Links|Links]]<br> [[Help:Tables|Tabellen]]<br> <br> ===Quellen=== [http://www.mediawiki.org/wiki/Help:Contents Wikimedia Hilfe] 7a824becab86e7847a0ae19a1c2c29600332a54e 65 64 2010-08-11T11:34:37Z Satria 1 wikitext text/x-wiki ===Wichtige Themen=== [[Help:Bilder|Bilder & Uploads]]<br> [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:TOC|Inhaltsverzeichnis]]<br> [[Help:Links|Links]]<br> [[Help:Tabellen|Tabellen]]<br> <br> ===Quellen=== [http://www.mediawiki.org/wiki/Help:Contents Wikimedia Hilfe] 988b960d7ffc88324b569e9e79034435bd0bad01 76 65 2010-08-11T12:02:35Z Satria 1 wikitext text/x-wiki ===Wichtige Themen=== [[Help:Bilder|Bilder & Uploads]]<br> [[Help:Formatierung|Formatierung]]<br> [[Help:HTML|HTML]]<br> [[Help:TOC|Inhaltsverzeichnis]]<br> [[Help:Links|Links]]<br> [[Help:Tabellen|Tabellen]]<br> 4955595414f5fec10ce8ca9a1f81a34eca5d5cc4 81 76 2010-08-11T12:03:35Z Satria 1 wikitext text/x-wiki ===Wichtige Themen=== *[[Help:Bilder|Bilder & Uploads]]<br> *[[Help:Formatierung|Formatierung]]<br> *[[Help:HTML|HTML]]<br> *[[Help:TOC|Inhaltsverzeichnis]]<br> *[[Help:Links|Links]]<br> *[[Help:Tabellen|Tabellen]]<br> 197d124d9b5006fa8c951cee3703a0eaab458896 88 81 2010-08-11T12:53:04Z Satria 1 wikitext text/x-wiki ===Wichtige Themen=== *[[Help:Bilder|Bilder & Uploads]]<br> *[[Help:Formatierung|Formatierung]]<br> *[[Help:HTML/en|HTML]]<br> *[[Help:TOC|Inhaltsverzeichnis]]<br> *[[Help:Links|Links]]<br> *[[Help:Tabellen|Tabellen]]<br> 36ae904cf7a2406c0c42e684e9f616923e83eb5c Hilfe:Images 12 36 66 60 2010-08-11T11:36:02Z Satria 1 wikitext text/x-wiki This page explains the '''image''' syntax when editing the wiki. You or another user must usually [[Help:Managing files|upload an image]] before you can use it on a page. Images that are stored on a MediaWiki server are usually rendered by using the <code>File:</code> namespace prefix (but the legacy <code>Image:</code> namespace prefix is still supported as a synonym) as the target of a MediaWiki link. The alternate <code>Media:</code> namespace prefix is also usable to reference the original media file content (for rendering or downloading it separately, out of any MediaWiki page). == Supported media types for images == The file name extension (remapped to lowercase) is used to determine the supported media type for images and to retrieve its internal preferred dimensions: * .svg : scalable image in the ''Standard Vector Graphics'' format (specified by the ''W3 Consortium''). * .jpg or .jpeg : bitmap image compressed in the standard JPEG format (this lossy format is most suitable for photographs). * .png : bitmap image in the ''Portable Network Graphics'' format (specified by the ''W3 Consortium''). * .gif : bitmap image in the legacy ''Graphics Interchange Format''. *: Note that animations of multiframed GIF images are currently supported only if the image is not rescaled into thumbnails; otherwise, only the first frame will be rendered. * .pdf : multipaged documents in the ''Portable Document Format'' (initially specified by ''Adobe''). * .djvu : multipaged bitmap documents in the ''DejaVu'' format (most often, scans of books). *: By default only the first page of .pdf and .djvu files will be rendered. Other media types may be supported depending on your MediaWiki version (look at the installation requirements, the release notes and the documentation). == Rendering a single image == === Syntax === The full syntax for displaying an image is: <nowiki>[[</nowiki>File:''file name.extension''|''options''|''caption'']] where ''options'' can be zero or more of the following, separated by pipes ('''|'''): * ''[[#Format|Format]]'' option: one of '''border''' and/or '''frameless''', '''frame''', '''thumb''' (or '''thumbnail'''); *: Controls how the rendered image is formatted and embedded in the rest of the page. * ''[[#Size and Frame|Resizing]]'' option: one of ** ''{width}'''''px''' — Resizes the image to fit within the given maximum width in pixels, without restricting its height; ** '''x'''''{height}'''''px''' — Resizes the image to fit within the given maximum height in pixels, without restricting its width; ** ''{width}'''''x'''''{height}'''''px''' — Resizes the image to fit within the given width and height in pixels; ** '''upright''' — Resizes an image to fit within reasonable dimensions, according to user preferences (suitable for images whose height is larger than width). *: Note that the image will always retain its aspect ratio, and can only be reduced (not increased) in size unless it's in a scalable media type (bitmap images cannot be scaled up). *: The default maximum size depends on the ''format'' and the internal image dimensions (according to its media type). * ''[[#Horizontal alignment|Horizontal alignment]]'' option: one of '''left''', '''right''', '''center''', '''none'''; *: Controls the horizontal alignment (and inline/block or floating styles) of the image within a text (no default value). * ''[[#Vertical alignment|Vertical alignment]] option'': one of '''baseline''', '''sub''', '''super''', '''top''', '''text-top''', '''middle''', '''bottom''', '''text-bottom'''; *: Controls the vertical alignment of a non-floating inline image with the text before or after the image, and in the same block (the default vertical alignment is '''middle'''). * ''[[#Altering the default link target|Link]] option'': one of ** '''link='''''{target}'' — Allows to change the target (to an arbitrary page title, or URL) of the generated link, activable on the rendered image surface; ** '''link=''' (with an empty value) — ({{mediawiki|rev:41727|MediaWiki 1.14+}}) Displays an image without any activable link; e.g. <code><nowiki>[[</nowiki>File:Example.jpg|20px|link=]]</code> renders as [[File:Example.jpg|20px|link=]]. *: Note that the '''link''' option cannot be used in conjunction with '''thumb''' or '''thumbnail''', as '''thumb''' is always meant to link to the larger version of the image. *: In addition, '''link''' cannot be used with '''frame'''. * Other specific options: ** '''alt='''''{alternative text}'' — ({{mediawiki|rev:41837|MediaWiki 1.14+}}) Defines the alternative text (maps to the HTML attribute <code>alt="..."</code> of the generated <code>&lt;image /&gt;</code> element) of an image that will be rendered if either the referenced image cannot be downloaded and embedded, or if the support media must use the alternative description text (e.g. when using a Braille reader or with accessibility options set by the user in its browser). ** '''page='''''{number}'' — Renders the specified page number (currently only applicable when showing a .djvu or .pdf file). The options can be given in any order. If the given ''options'' conflict each other, the latter is applied, except for the ''format'' options, where the options take the priority in the order of: '''frame'''; '''thumb''' (or '''thumbnail'''); '''frameless''' and/or '''border'''. If a parameter does not match any of the other possibilities, it is assumed to be the caption text. Caption text shows below the image in '''thumb''' and '''frame''' formats, or as mouseover text in '''border''', '''frameless''' formats or when the format is omitted. Caption text displayed in the '''thumb''' and '''frame''' formats may contain wiki links and other formatting. In the other options, wiki-formatting will not work though transclusion will. If no caption text is supplied, a caption is automatically created showing the file name. To completely remove the caption, set it to <code><nowiki><span title=""></span></nowiki></code>. For example, <code><nowiki>[[File:Example.jpg|20px|<span title=""></span>]]</nowiki></code> renders as [[File:Example.jpg|20px|<span title=""></span>]]. === Format === The following table shows the effect of all available formats. {|class="wikitable plainlinks" |- !Description !You type !You get {{Help:Images/frame|frame=|ex=no format specified|float=no|inline=yes}} {{Help:Images/frame|frame=border|ex='''border''' results in a very small gray border|float=no|inline=yes}} {{Help:Images/frame|frame=frameless|ex='''frameless''', like thumbnail, respect user preferences for image width, but without border and no right float|float=no|inline=yes}} {{Help:Images/frame|frame=frameless|2=border|ex='''frameless''' and '''border'''|float=no|inline=yes}} {{Help:Images/frame|frame=frame|ex='''frame'''|float=yes|inline=no}} {{Help:Images/frame|frame=thumb|ex='''thumb''' or '''thumbnail'''|float=yes|inline=no}} |} When the height of an image in thumbnail is bigger than its width (i.e. in portrait orientation rather than lansdscape) and you find it too outstanding, you may try the option <code>upright</code>, which will try to adjust its size to more desirable size by reducing the height instead the width. The alternative is to specify the desired maximum height (in pixels) explicitly. Note that by writing <code>thumb={filename}</code>, you can use a different image for the thumbnail. === Size and Frame === Among different formats, the effect of the size parameter may be different, as shown below. * For how it appears when its size is not specified, see [[#Format|Format]] section above. * When the format is not specified, or only <code>border</code>ed, the size can be both reduced and enlarged to any specified size. * In the examples below, the original size of the image is 400 × 267 pixels. * An image with <code>frame</code> always ignores the size specification, the original image will be reduced it it exceeds the maximum size defined in user preferences. * The size of an image with <code>thumb</code> and <code>frameless</code> can be reduced, but can not be enlarged beyond the original size of the image. {|class="wikitable" |- ! Format !! Reduced !! Enlarged {{Help:Images/size|frame=}} {{Help:Images/size|frame=border}} {{Help:Images/size|frame=frame}} {{Help:Images/size|frame=thumb}} {{Help:Images/size|frame=frameless}} |} === Horizontal alignment === Note that when using the <code>frame</code> or <code>thumb[nail]</code> formats, the default horizontal alignment will be <code>right</code>. {|class="wikitable" |- !Description !You type !You get {{Help:Images/frame|2=100px|frame=|ex='''no horizontal alignment specified''', or default alignment|inline=yes|float=no}} {{Help:Images/frame|2=100px|frame=none|ex=specify horizontal alignment as: '''none'''|inline=no|float=no}} {{Help:Images/frame|2=100px|frame=center|ex=specify horizontal alignment as: '''center'''|inline=no|float=no}} {{Help:Images/frame|2=100px|frame=left|ex=specify horizontal alignment as: '''left'''|inline=no|float=yes}} {{Help:Images/frame|2=100px|frame=right|ex=specify horizontal alignment as: '''right'''|inline=no|float=yes}} |} === Vertical alignment === The vertical alignment options take effect only if the image '''is''' rendered as an inline element and '''is not''' floating. They alter the way the inlined image will be vertically aligned with the text present in the same block before and/or after this image on the same rendered row. Note that the rendered line of text where inline images are inserted (and the lines of text rendered after the current one) may be moved down (this will increase the line-height conditionally by additional line spacing, just as it may occur with spans of text with variable font sizes, or with superscripts and subscripts) to allow the image height to be fully displayed with this alignment constraint. <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki>'''top:''' [[File:Example.jpg|20px|top]] [[File:Example.jpg|40px|top]] [[File:Example.jpg|40px|border|top]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> <nowiki/> <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki>'''text-top:''' [[File:Example.jpg|20px|text-top]] [[File:Example.jpg|40px|text-top]] [[File:Example.jpg|40px|border|text-top]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> <nowiki/> <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki><sup>super:</sup> [[File:Example.jpg|20px|super]] [[File:Example.jpg|40px|super]] [[File:Example.jpg|40px|border|super]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> <nowiki/> <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki>'''baseline:''' [[File:Example.jpg|20px|baseline]] [[File:Example.jpg|40px|baseline]] [[File:Example.jpg|40px|border|baseline]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> <nowiki/> <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki><sub>'''sub:'''</sub> [[File:Example.jpg|20px|sub]] [[File:Example.jpg|40px|sub]] [[File:Example.jpg|40px|border|sub]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> <nowiki/> <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki>'''default:''' [[File:Example.jpg|20px]][[File:Example.jpg|40px]] [[File:Example.jpg|40px|border]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> <nowiki/> <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki>'''middle:''' [[File:Example.jpg|20px|middle]] [[File:Example.jpg|40px|middle]] [[File:Example.jpg|40px|border|middle]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> <nowiki/> <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki>'''text-bottom:''' [[File:Example.jpg|20px|text-bottom]] [[File:Example.jpg|40px|text-bottom]] [[File:Example.jpg|40px|border|text-bottom]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> <nowiki/> <nowiki><p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"></nowiki> <nowiki><span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del></nowiki> <nowiki>'''bottom:'' [[File:Example.jpg|20px|bottom]] [[File:Example.jpg|40px|bottom]] [[File:Example.jpg|40px|border|bottom]]</nowiki> <nowiki><del>text</del></u></span></p></nowiki> results in the following (to show the alignment result more clearly, the text spans are overlined and underlined, the line-height is increased to 200% of the font-height, the font-height is emphasized with a yellow background covering the line margins, and the full line-height is shown with a dark gray border; additionally images of different sizes are aligned, including one with an additional border that adds some pixels to its specified dimensions and slightly changes its vertical alignment): <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> '''top:''' [[File:Example.jpg|20px|top]] [[File:Example.jpg|40px|top]] [[File:Example.jpg|40px|border|top]] <del>text</del></u></span></p> <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> '''text-top:''' [[File:Example.jpg|20px|text-top]] [[File:Example.jpg|40px|text-top]] [[File:Example.jpg|40px|border|text-top]] <del>text</del></u></span></p> <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> <sup>'''super:'''</sup> [[File:Example.jpg|20px|super]] [[File:Example.jpg|40px|super]] [[File:Example.jpg|40px|border|super]] <del>text</del></u></span></p> <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> '''baseline:''' [[File:Example.jpg|20px|baseline]] [[File:Example.jpg|40px|baseline]] [[File:Example.jpg|40px|border|baseline]] <del>text</del></u></span></p> <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> <sub>'''sub:'''</sub> [[File:Example.jpg|20px|sub]] [[File:Example.jpg|40px|sub]] [[File:Example.jpg|40px|border|sub]] <del>text</del></u></span></p> <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> '''default:''' [[File:Example.jpg|20px]] [[File:Example.jpg|40px]] [[File:Example.jpg|40px|border]] <del>text</del></u></span></p> <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> '''middle:''' [[File:Example.jpg|20px|middle]] [[File:Example.jpg|40px|middle]] [[File:Example.jpg|40px|border|middle]] <del>text</del></u></span></p> <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> '''text-bottom:''' [[File:Example.jpg|20px|text-bottom]] [[File:Example.jpg|40px|text-bottom]] [[File:Example.jpg|40px|border|text-bottom]] <del>text</del></u></span></p> <p style="border:1px solid #AAA;background:#FF0;padding:0;font-size:150%;line-height:2"> <span style="background:#FFF;color:#000;text-decoration:overline"><u><del>text</del> '''bottom:''' [[File:Example.jpg|20px|bottom]] [[File:Example.jpg|40px|bottom]] [[File:Example.jpg|40px|border|bottom]] <del>text</del></u></span></p> Notes: # The "middle" vertical alignment position of the image (which is also the default) usually refers to the middle between the x-height and the baseline of the text (on which the vertical middle of the image will be aligned, and on which usually the text may be overstroke), but not to the middle of the line-height of the font-height that refers to the space between the "text-top" and "text-bottom" positions ; the font-height excludes: #* the additional line separation spacing normally divided equally into two line-margins (here 0.5em, according to line-height set to 200%) above and below the font-height). #* the additional line spacing which may be added by superscripts and subscripts. # However, if the image height causes its top or bottom position to go above or below the normal full line-height of text, the middle position will be adjusted after the increasing the top and/or bottom line-margins so that the image can fit and align properly, and all images (including those with smaller heights) will be vertically centered on the adjusted middle position (for computing the effective line-height, the text of each rendered row with the larger font-height will be considered). # The "text-top" and "text-bottom" alignment positions also excludes the extra line spacing added by superscripts and subscripts, but not the additional line-spacing defined by the line-height. # The "top" and "bottom" alignment positions take into account all these extra line spacings (including superscripts and subscripts, if they are present in a rendered line span). When the image alignment constrains the image to grow above or below the normal line-spacing, and the image is not absolutely positioned, the image will cause the "top" and "bottom" positions to be adjusted (just like superscripts and subscripts), so the effective line-height between rendered lines of text will be higher. # The "underline", "overline" and "overstrike" text-decoration positions should be somewhere within these two limits and ''may'' depend on the type and height of fonts used (the superscript and subscript styles may be taken into account in some browsers, but usually these styles are ignored and the position of these decorations may not be adjusted); so these decorations normally don't affect the vertical position of images, relatively to the text. === Stopping the text flow === On occasion it is desirable to stop text (or other inline non-floating images) from flowing around a floating image. Depending on the web browser's screen resolution and such, text flow on the right side of an image may cause a section header (for instance, <nowiki>== My Header ==</nowiki>) to appear to the right of the image, instead of below it, as a user may expect. The text flow can be stopped by placing '''<nowiki><br style="clear: both" /></nowiki>''' before the text that should start below the floatting image. All images rendered as blocks (including non-floating '''center'''ed images, '''left'''- or '''right'''-floating images, as well as '''framed''' or '''thumbnail'''ed floating images) are implicitly breaking the surrounding lines of text (terminating the current block of text before the image, and creating a new paragraph for the text after them). They will then stack vertically along their left or right alignment margin (or along the center line between these margins for '''center'''ed images). === Altering the default link target === The following table shows how to alter the link target (whose default is the image description page) or how to remove it. Changing the link does not alter the format described in the previous sections. {|class="wikitable plainlinks" |- !Description !You type !You get {{Help:Images/frame|2=link=Main Page|ex=internal link}} {{Help:Images/frame|2=link=http://wikipedia.org|ex=external link}} {{Help:Images/frame|2=link=|ex=no link (external or file page)}} |} '''Warning :''' : The licencing requirements on your wiki may not allow you to remove all links to the description page that displays the required authors attributions, the copyrights statements, the applicable licencing terms, or a more complete description of the rendered image (including its history of modifications). : If you change or remove the target link of an image, you will then have to provide somewhere else on your page an explicit link to this description page, or to display the copyright and author statement and a link to the applicable licence, if they are different from the elements applicable to the embedding page itself. : Your wiki policy may restrict the use of the alternate link parameter, or may even enforce a prohibition of alternate link parameters for embedded media files (in which case, the link parameter will be ignored), or may only accept to them after validation by authorized users or administrators. == Rendering a gallery of images == === Gallery syntax === It's easy to make a gallery of '''thumbnails only''', not other images, with the <code><nowiki><gallery></nowiki></code> tag. The syntax is: <nowiki><gallery></nowiki> Image:file_name.ext|caption Image:file_name.ext|caption {...} </gallery> Note that the image code is not enclosed in brackets when enclosed in gallery tags. Captions are optional, and may contain wiki links or other formatting. for example: <nowiki><gallery></nowiki> File:Example.jpg|Item 1 File:Example.jpg|a link to <nowiki>[[</nowiki>Help:Contents]] File:Example.jpg File:Example.jpg File:Example.jpg| <nowiki>''italic caption''</nowiki> File:Example.jpg|on page "<nowiki>{{</nowiki>PAGENAME}}" </gallery> is formatted as: <gallery> File:Example.jpg|Item 1 File:Example.jpg|a link to [[Help:Contents]] File:Example.jpg File:Example.jpg File:Example.jpg|''italic caption'' File:Example.jpg|on page "{{PAGENAME}}" </gallery> === Optional gallery attributes === The gallery tag itself takes several additional parameters, specified as attribute name-value pairs: <pre><gallery {parameters}> {images} </gallery></pre> * <code>caption={caption}</code>: sets a caption on the gallery. * <code>widths={width}px</code>: sets the widths of the images, default 120px. ''Note the plural, width'''s''''' * <code>heights={heights}px</code>: sets the (max) heights of the images. * <code>perrow={integer}</code>: sets the number of images per row. Example: Coding: <pre> <gallery widths=60px heights=60px perrow=7 caption="sunflowers are groovy"> File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg </gallery> </pre> Result: <gallery widths=60px heights=60px perrow=7 caption="sunflowers are groovy"> File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg File:Example.jpg </gallery> == Linking to an image without displaying it == === Link to description page === If you put a colon (<code>:</code>) before <code>{{ns:image}}:</code>, the image will not be embedded and the link will lead to the description page of the file. <nowiki>[[</nowiki>:{{ns:image}}:{{mediawiki:image_sample}}]] <nowiki>[[</nowiki>:{{ns:image}}:{{mediawiki:image_sample}}|Sunflowers]] results in [[:{{ns:image}}:{{mediawiki:image_sample}}]] [[:{{ns:image}}:{{mediawiki:image_sample}}|Sunflowers]] === Link to another page === This will make a 50px width picture with a link to the page [[MediaWiki]]: <nowiki>[[</nowiki>File:Wiki.png|50px|link=MediaWiki]] [[File:Wiki.png|50px|link=MediaWiki]] === Link directly to the media file === You can use the pseudo-namespace “{{ns:media}}” to link directly to a file without rendering it, bypassing the description page. <nowiki>[[</nowiki>{{ns:media}}:{{mediawiki:image_sample}}]] <nowiki>[[</nowiki>{{ns:media}}:{{mediawiki:image_sample}}|Sunflowers]] results in [[{{ns:media}}:{{mediawiki:image_sample}}]] [[{{ns:media}}:{{mediawiki:image_sample}}|Sunflowers]] You can also use:&nbsp; <nowiki>[[</nowiki>{{#special:Filepath}}/{{mediawiki:image_sample}}]] which can be used to link to a potential file, even if it doesn't exist. You can also use: <nowiki>{{</nowiki>FILEPATH:{{mediawiki:image_sample}}<nowiki>}}</nowiki> which generates an external URL to the file inline: {{FILEPATH:{{mediawiki:image_sample}}}} == Requisites == Before using images in your page, the system administrator of your wiki must have {{mediawiki|Manual:Configuring file uploads|enabled file uploads}} and a user has to [[Help:Managing files|upload the file]]. System administrators may also set the wiki to accept files from {{mediawiki|Manual:Image Administration#Foreign Repositories|foreign repositories}}, such as the [http://commons.wikimedia.org/wiki/Main_Page Wikimedia Commons]. For server side image resizing it is necessary to have a scaler configured (such as GD2, ImageMagick, etc.). == Files at other websites == You can link to an external file available online using the same syntax used for linking to an external web page. With these syntaxes, the image will not be rendered, but only the text of the link to this image will be displayed. <pre>[http://url.for/some/image.png]</pre> Or with a different displayed text: <pre>[http://url.for/some/image.png link text here]</pre> Additional MediaWiki markup or HTML/CSS formatting (for inline elements) is permitted in this displayed text (with the exception of embedded links that would break the surrounding link): <pre>[http://www.example.com/some/image.png Example '''<del>rich</del>''' ''<ins>link text</ins>'' here.]</pre> which renders as: [http://www.example.com/some/image.png Example '''<del>rich</del>''' ''<ins>link text<ins>'' here.] If it is enabled on your wiki (see {{mediawiki|Manual:$wgAllowExternalImages}}), you can also embed external images. To do that, simply insert the image's url: <pre>http://url.for/some/image.png</pre> Currently, embedded images cannot be resized, but they may be formatted by surrounding MediaWiki markup or HTML/CSS code. If this wiki option is not enabled, the image will not be embedded but rendered as a textual link to the external site, just like above. b55fbf5a1af3381223f5de00f348b29705cf115c Hilfe:Bilder 12 37 67 2010-08-11T11:36:15Z Satria 1 Die Seite wurde neu angelegt: „==Syntax== Normalerweise würdest Du '''erst ein Bild in das Wiki hochladen''' (siehe [[Help:Managing files/de]]) ''bevor'' Du den folgenden Wikitext verwendest, …“ wikitext text/x-wiki ==Syntax== Normalerweise würdest Du '''erst ein Bild in das Wiki hochladen''' (siehe [[Help:Managing files/de]]) ''bevor'' Du den folgenden Wikitext verwendest, um das Bild im Artikel einzubinden. In der deutschen MediaWiki Version kann statt <tt>File:</tt> auch <tt>Datei:</tt> verwendet werden (<tt>Image:</tt> bzw. <tt>Bild:</tt> funktionieren aus Kompatibilitätsgründen weiterhin, siehe Absatz ''Configuration changes in 1.14'' in den [http://svn.wikimedia.org/viewvc/mediawiki/branches/REL1_14/phase3/RELEASE-NOTES?view=markup Release Notes]). <div style="border:1px solid #fff; padding-left: 0.5em !important; background-color:transparent; border-width:0 0 0 0.5em; clear:both"> {| class='wikitable' |- ||'''Beschreibung''' ||'''Wiki Code''' ||'''Ausgabe''' |- |Eingebettetes Bild<br /> (mit alt Text) | <code><nowiki>[[File:Example.jpg|Sonnenblumen]]</nowiki></code> | [[File:Example.jpg|Sonnenblumen]] |- |Link zu einer Bildseite | <code><nowiki>[[:File:Example.jpg]]</nowiki></code><br /> <code><nowiki>[[:File:Example.jpg|Sonnenblumen]]</nowiki></code> | [[:File:Example.jpg]]<br /> [[:File:Example.jpg|Sonnenblumen]] |- |direkter Link zur Bilddatei | <code><nowiki>[[Media:Example.jpg]]</nowiki></code><br /> <code><nowiki>[[Media:Example.jpg|Sonnenblumen]]</nowiki></code> | [[Media:Example.jpg]]<br /> [[Media:Example.jpg|Sonnenblumen]] |- |Thumbnail<br /> (zentriert, 100 Pixel<br /> breite, mit Beschriftung) | <code><nowiki>[[File:Example.jpg|center|thumb|100px|Sonnenblumen]]</nowiki></code> | [[File:Example.jpg|center|thumb|100px|Sonnenblumen]] |} </div> Um ein Bild oder eine andere Datei einbinden zu können, die [[Help:Managing files/de|hochgeladen wurde]], verwende: *<code><nowiki>[[File:Example.jpg]]</nowiki></code> Wenn du einen Hochstrich (|) und etwas Text nach dem Dateinamen eingibst, wird der Text als alternativer Text für nur Text Browser verwendet. Notwendig ist diese Angabe jedoch auch für ein barrierefreies Internet zum Beispiel für Menschen mit Sehbehinderung. *<code><nowiki>[[File:Example.jpg|alternative Text]]</nowiki></code> Falls das Bild nicht angezeigt werden soll, kann ein direkter Link auf die Bild Beschreibungsseite, durch hinzufügen eines Doppelpunktes, erfolgen. *<code><nowiki>[[:File:Example.jpg]]</nowiki></code> Um die Bild Beschreibungsseite zu umgehen und direkt zu der Datei zu linken muss der Pseudo Namespace "Media" verwendet werden. *<code><nowiki>[[Media:Example.jpg]]</nowiki></code> Alternativ kann auch ein abweichender Text angezeigt werden. *<code><nowiki>[[:File:Example.jpg|link text]]</nowiki></code> *<code><nowiki>[[Media:Example.jpg|link text]]</nowiki></code> ===erweiterte Optionen=== Die komplette Syntax um ein Bild anzuzeigen ist: <code><nowiki>[[File:{name}|{options}]]</nowiki></code> Optionen müssen nicht gewählt werden. Bei mehreren müssen diese mit horizontalen Strichen getrennt werden: *<code>thumb</code> oder <code>thumbnail</code>, <code>frame</code>: steuert wie ein Bild formatiert wird *<code>left</code>, <code>right</code>, <code>center</code>, <code>none</code>: steuert die Ausrichtung eines Bildes auf der Seite *<code>{width}px</code>: passt die Grösse entsprechend der gegebenen Breite an (Beispiel: <code><nowiki>[[Bild:logo.jpg|80px]])</nowiki></code> *<code>{caption text}</code> Die Optionen können in jeder beliebigen Reihenfolge stehen. Wenn eine eingegebene Option nicht mit den aufgeführten übereinstimmt, wird diese als Untertitel verwendet. Untertitel können [[Help:Contents/de | Links]] oder andere [[Help:Formatting/de | Formatierungen]] enthalten. ===Galerie mit Bildern=== Es ist recht einfach eine Bildergalerie mit Thumbnails zu erstellen. Die Syntax hierfür lautet: <code><nowiki> <gallery> File:{dateiname}|{Beschreibung} File:{dateiname}|{Beschreibung} {...} </gallery> </nowiki></code> Zum Beispiel wird <nowiki><gallery> File:Example.jpg|Item 1 File:Example.jpg|a link to [[Help:Contents]] File:Example.jpg File:Example.jpg File:Example.jpg|''italic caption'' </gallery></nowiki> wie folgt ausgegeben: <gallery> File:Example.jpg|Item 1 File:Example.jpg|a link to [[Help:Links]] File:Example.jpg File:Example.jpg File:Example.jpg|''italic caption'' </gallery> ==andere Dateien== Um auf eine externe Datei zu linken kann die selbe Syntax verwendet werden, wie für [[Help:Links|Links auf eine externe Webseite]]. *<code><nowiki>[http://url.for/some/image.png]</nowiki></code> Oder mit einem anderen Text: *<code><nowiki>[http://url.for/some/image.png link text here]</nowiki></code> Falls die Einstellung [[Manual:$wgAllowExternalImages|$wgAllowExternalImages]] aktiviert ist, können externe Bilder auch eingebunden werden. Dieses geht einfach durch Einfügen der URL. *<code><nowiki>http://url.for/some/image.png</nowiki></code> == Hilfreiche Links == [http://www.mediawiki.org/wiki/Manual:Image_Administration/de Administration von Bildern/Dateien] [[Images|Images (Englisch)]] 591b9a05f9bbf05c9f031d4437ffccc6a13ec50e 68 67 2010-08-11T11:41:11Z Satria 1 wikitext text/x-wiki ==Syntax== Normalerweise würdest Du '''erst ein Bild in das Wiki hochladen''' (siehe [[Help:Managing files/de]]) ''bevor'' Du den folgenden Wikitext verwendest, um das Bild im Artikel einzubinden. In der deutschen MediaWiki Version kann statt <tt>File:</tt> auch <tt>Datei:</tt> verwendet werden (<tt>Image:</tt> bzw. <tt>Bild:</tt> funktionieren aus Kompatibilitätsgründen weiterhin, siehe Absatz ''Configuration changes in 1.14'' in den [http://svn.wikimedia.org/viewvc/mediawiki/branches/REL1_14/phase3/RELEASE-NOTES?view=markup Release Notes]). <div style="border:1px solid #fff; padding-left: 0.5em !important; background-color:transparent; border-width:0 0 0 0.5em; clear:both"> {| class='wikitable' |- ||'''Beschreibung''' ||'''Wiki Code''' ||'''Ausgabe''' |- |Eingebettetes Bild<br /> (mit alt Text) | <code><nowiki>[[File:Example.jpg|Sonnenblumen]]</nowiki></code> | [[File:Example.jpg|Sonnenblumen]] |- |Link zu einer Bildseite | <code><nowiki>[[:File:Example.jpg]]</nowiki></code><br /> <code><nowiki>[[:File:Example.jpg|Sonnenblumen]]</nowiki></code> | [[:File:Example.jpg]]<br /> [[:File:Example.jpg|Sonnenblumen]] |- |direkter Link zur Bilddatei | <code><nowiki>[[Media:Example.jpg]]</nowiki></code><br /> <code><nowiki>[[Media:Example.jpg|Sonnenblumen]]</nowiki></code> | [[Media:Example.jpg]]<br /> [[Media:Example.jpg|Sonnenblumen]] |- |Thumbnail<br /> (zentriert, 100 Pixel<br /> breite, mit Beschriftung) | <code><nowiki>[[File:Example.jpg|center|thumb|100px|Sonnenblumen]]</nowiki></code> | [[File:Example.jpg|center|thumb|100px|Sonnenblumen]] |} </div> Um ein Bild oder eine andere Datei einbinden zu können, die [[Help:Managing files/de|hochgeladen wurde]], verwende: *<code><nowiki>[[File:Example.jpg]]</nowiki></code> Wenn du einen Hochstrich (|) und etwas Text nach dem Dateinamen eingibst, wird der Text als alternativer Text für nur Text Browser verwendet. Notwendig ist diese Angabe jedoch auch für ein barrierefreies Internet zum Beispiel für Menschen mit Sehbehinderung. *<code><nowiki>[[File:Example.jpg|alternative Text]]</nowiki></code> Falls das Bild nicht angezeigt werden soll, kann ein direkter Link auf die Bild Beschreibungsseite, durch hinzufügen eines Doppelpunktes, erfolgen. *<code><nowiki>[[:File:Example.jpg]]</nowiki></code> Um die Bild Beschreibungsseite zu umgehen und direkt zu der Datei zu linken muss der Pseudo Namespace "Media" verwendet werden. *<code><nowiki>[[Media:Example.jpg]]</nowiki></code> Alternativ kann auch ein abweichender Text angezeigt werden. *<code><nowiki>[[:File:Example.jpg|link text]]</nowiki></code> *<code><nowiki>[[Media:Example.jpg|link text]]</nowiki></code> ===erweiterte Optionen=== Die komplette Syntax um ein Bild anzuzeigen ist: <code><nowiki>[[File:{name}|{options}]]</nowiki></code> Optionen müssen nicht gewählt werden. Bei mehreren müssen diese mit horizontalen Strichen getrennt werden: *<code>thumb</code> oder <code>thumbnail</code>, <code>frame</code>: steuert wie ein Bild formatiert wird *<code>left</code>, <code>right</code>, <code>center</code>, <code>none</code>: steuert die Ausrichtung eines Bildes auf der Seite *<code>{width}px</code>: passt die Grösse entsprechend der gegebenen Breite an (Beispiel: <code><nowiki>[[Bild:logo.jpg|80px]])</nowiki></code> *<code>{caption text}</code> Die Optionen können in jeder beliebigen Reihenfolge stehen. Wenn eine eingegebene Option nicht mit den aufgeführten übereinstimmt, wird diese als Untertitel verwendet. Untertitel können [[Help:Contents/de | Links]] oder andere [[Help:Formatting/de | Formatierungen]] enthalten. ===Galerie mit Bildern=== Es ist recht einfach eine Bildergalerie mit Thumbnails zu erstellen. Die Syntax hierfür lautet: <code><nowiki> <gallery> File:{dateiname}|{Beschreibung} File:{dateiname}|{Beschreibung} {...} </gallery> </nowiki></code> Zum Beispiel wird <nowiki><gallery> File:Example.jpg|Item 1 File:Example.jpg|a link to [[Help:Contents]] File:Example.jpg File:Example.jpg File:Example.jpg|''italic caption'' </gallery></nowiki> wie folgt ausgegeben: <gallery> File:Example.jpg|Item 1 File:Example.jpg|a link to [[Help:Links]] File:Example.jpg File:Example.jpg File:Example.jpg|''italic caption'' </gallery> ==andere Dateien== Um auf eine externe Datei zu linken kann die selbe Syntax verwendet werden, wie für [[Help:Links|Links auf eine externe Webseite]]. *<code><nowiki>[http://url.for/some/image.png]</nowiki></code> Oder mit einem anderen Text: *<code><nowiki>[http://url.for/some/image.png link text here]</nowiki></code> Falls die Einstellung [[Manual:$wgAllowExternalImages|$wgAllowExternalImages]] aktiviert ist, können externe Bilder auch eingebunden werden. Dieses geht einfach durch Einfügen der URL. *<code><nowiki>http://url.for/some/image.png</nowiki></code> == Hilfreiche Links == [http://www.mediawiki.org/wiki/Manual:Image_Administration/de Administration von Bildern/Dateien] [[Help:Images|Images (Englisch)]] c8e8d532b8852ce8b3f272f489ceb749270d8f02 Hilfe:Links 12 38 69 2010-08-11T11:47:24Z Satria 1 Die Seite wurde neu angelegt: „In der MediaWiki gibt es verschiedene Arten von Links. Es gibt interne Links, externe Links zu anderen Webseiten und InterWiki Links in andere Wikis oder andere S…“ wikitext text/x-wiki In der MediaWiki gibt es verschiedene Arten von Links. Es gibt interne Links, externe Links zu anderen Webseiten und InterWiki Links in andere Wikis oder andere Sprachbereiche eines Wikis. Um einen internen Link zu erstellen, muss das zu verlinkende Wort (Wörter) in doppelte eckige Klammern gesetzt werden. Nach dem Speichern des Artikels wird der Link auf der Seite angezeigt. Existiert die verlinkte Seite schon, erscheint der Link in blauer Schrift. Gibt es die Seite nicht, wird der Text in rot dargestellt. Links auf die selben Artikel werden fett dargestellt aber nicht als Link. Der erste Buchstabe des Links wird automatisch großgeschrieben. Leerzeichen werden in einen Unterstrich (_) umgewandelt. Man kann den Unterstrich auch selbst einsetzen, dieses wird aber nicht empfohlen. {| border="1" class="wikitable" |- ||'''Beschreibung''' ||'''Wiki Code''' ||'''Ausgabe''' |- |Interner Link |<code><nowiki>[[Seitenname]]</nowiki></code> |[[Seitenname]] |- |Interner Link mit abweichendem Text |<code><nowiki>[[Seitenname|Beschreibungstext]]</nowiki></code> |[[Seitenname|Beschreibungstext]] |- |Interner Link mit Sprungmarke <br>(Sprungmarken oder Anker werden automatisch für alle [[Help:Formatting/de|Überschriften]] und den Seitenanfang [[Help:Links/de#top|#top]] angelegt) |<code><nowiki>[[Help:Links#Internal links|Beschreibung auf Englisch]]</nowiki></code> |[[Help:Links#Internal links|Beschreibung auf Englisch]] |- |Externer Link |<code><nowiki>http://mediawiki.org</nowiki></code> |http://mediawiki.org |- |Externer Link mit abweichendem Text |<code><nowiki>[http://mediawiki.org MediaWiki]</nowiki></code> |[http://mediawiki.org MediaWiki] |- |Externer Link ohne Namen |<code><nowiki>[http://mediawiki.org]</nowiki></code> |[http://mediawiki.org] |- |Externer Link ohne Namen auf dem gleichen Server |<code><nowiki>[http://{{SERVERNAME}}/seitenname]</nowiki></code> |[http://{{SERVERNAME}}/seitenname] |- |Interwiki Link |<code><nowiki>[[Wikipedia:MediaWiki]]</nowiki></code> |[[Wikipedia:MediaWiki]] |- |Interwiki Link mit abweichendem Text |<code><nowiki>[[Wikipedia:MediaWiki|Beschreibungstext]]</nowiki></code> |[[Wikipedia:MediaWiki|Beschreibungstext]] |- |Interwiki Link (zur deutschsprachigen Wikipedia) |<code><nowiki>[[Wikipedia:de:MediaWiki]]</nowiki></code> |[[Wikipedia:de:MediaWiki]] |- |Link zu einer Kategorie |<code><nowiki>[[:Kategorie:Kategoriename]]</nowiki></code> |[[:Kategorie:Kategoriename]] |- |Link zu einer Kategorie mit abweichendem Text |<code><nowiki>[[:Kategorie:Kategoriename|Beschreibungstext]]</nowiki></code> |[[:Kategorie:Kategoriename|Beschreibungstext]] |- |Interner Link zu einer Bilddatei |<tt><nowiki>[[Bild:Beispiel.jpg]]</nowiki></tt> |[[Bild:Beispiel.jpg]] |- |Interner Link zu einer Bilddatei mit abweichendem Text |<tt><nowiki>[[Bild:Beispiel.jpg|Beschreibungstext]]</nowiki></tt> |[[Bild:Beispiel.jpg|Beschreibungstext]] |- |Interner Link zu einer PDF Datei |<tt><nowiki>[[Media:Beispiel.pdf]]</nowiki></tt> |[[Media:Beispiel.pdf]] |- |Interner Link zu einer PDF Datei mit abweichendem Text |<tt><nowiki>[[Media:Beispiel.pdf|Beschreibungstext]]</nowiki></tt> |[[Media:Beispiel.pdf|Beschreibungstext]] |- |Umleitung auf eine andere Seite |<code><nowiki>#REDIRECT [[Hauptseite]]</nowiki></code> |&rarr; [[Hauptseite]] |} [[Help:Links/en|Links (Englisch)]] 389eb3a8b2e9d161dc31783216bf78defedc01d4 Hilfe:Tabellen 12 39 70 2010-08-11T11:55:39Z Satria 1 Die Seite wurde neu angelegt: „Tabellen können in Media Wiki Seiten entweder direkt mit HTML Tabellenelementen geschrieben werden oder mit dem Wikicode. HTML Tabellenelemente und ihr Gebrauch …“ wikitext text/x-wiki Tabellen können in Media Wiki Seiten entweder direkt mit HTML Tabellenelementen geschrieben werden oder mit dem Wikicode. HTML Tabellenelemente und ihr Gebrauch werden auf verschiedenen Webseiten beschrieben und deshalb hier nicht besprochen. Der Wikicode nutzt Buchstabensymbole um die Tabellenstruktur im Artikel zu bilden, die in der Ansicht durch HTML Tabellenelemente ersetzt werden. Generell sollte man die Verwendung von Tabellen vermeiden, außer es geht wirklich nicht anders. Der Tabellenaufbau verkompliziert meist das Bearbeiten von Seiten. == Zusammenfassung Wiki Tabellen Code == {|cellpadding="5" cellspacing="0" border="1" |- ! Wiki Code !! vgl. HTML Code !! Beschreibung |- |<nowiki>{|</nowiki> || <nowiki><table></nowiki> || '''Tabellenanfang''' |- |<nowiki>|+</nowiki> || <nowiki>&nbsp;</nowiki> || '''Tabellenüberschrift''', ''optional;'' nur einmal pro Tabelle zwischen Tabellenanfang und erster Zeile definierbar |- |<nowiki>|-</nowiki> || <nowiki><tr></nowiki> || neue '''Tabellenzeile'''<!-- , Unklar ''optional in der ersten Zeile'' -- wiki engine assumes the first row --> |- |<nowiki>!</nowiki> || <nowiki><th></nowiki> || '''Tabellenkopfzelle''', ''optional.'' Aufeinanderfolgende Kopfzellen können, durch doppelte Ausrufezeichen (!!) getrennt, in der gleichen Zeile folgen oder mit einfachen Ausrufezeichen (!) auf einer neuen Zeile beginnen. |- |<nowiki>|</nowiki> || <nowiki><td></nowiki> || '''Tabellenzelle''', ''Pflicht!'' Aufeinanderfolgende Zellen können, durch doppelte Striche (<nowiki>||</nowiki>) getrennt, in der gleichen Zeile folgen oder mit einfachem Strich (<nowiki>|</nowiki>) auf einer neuen Zeile beginnen. |- |<nowiki>|}</nowiki> || <nowiki></table></nowiki> || '''Tabellenende''' |} *Die angegebenen Zeichen müssen am '''Zeilenanfang''' stehen, ausgenommen die Doppelten || und !! für optional aufeinanderfolgende Zellen in einer Zeile. *'''XHTML - Eigenschaften.''' Jede Markierung, außer das Tabellenende, kann optional eine oder mehrere XHTML Eigenschaften haben. Die Eigenschaften müssen in der gleichen Zeile eingegeben werden, für die sie auch gültig sind. Mehrere Eingaben müssen mit einem Leerzeichen getrennt eingegeben werden. **Der Inhalt von Zellen und Überschriften (<nowiki>| oder ||, ! oder !!, und |+</nowiki>) muss von der Formatierung mit einen Strich (|) getrennt sein und kann in der gleichen und folgenden Zeilen stehen. **Tabellen, Spalten und reihen (<nowiki>{| und |-</nowiki>) die nicht direkt einen Inhalt haben können, dürfen auch ''keinen'' Strich (|) nach den Attributen haben. Falls doch einer gesetzt wird entfernt der Parser diese ''und'' das letzte Attribut, falls zwischen ihm und dem Strich kein Leereichen ist. *'''Inhalt''' kann (a) nach seiner Zellenmarkierung nach den optionalen XHTML Eigenschaften in der gleichen Reihe stehen oder (b) unter der Zellenmarkierung. Inhalt, welcher Wiki Formatierung (wie Überschriften, Aufzählungen usw.) nutzt, muss am Anfang einer neuen Zeile stehen. ==Einfache Tabelle== ===Einfache Form=== Die folgende Tabelle hat keine Ränder oder gute Leerräume. Sie zeigt aber den einfachen Wiki Code für eine Tabellenstruktur {| width="100%" |+ ! Anzeige in Wiki ! Wiki Code |- | {| |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |<pre> {| |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ===Alternative=== Für ein mehr tabellarisches Aussehen können im Wiki Markup die Zellen in einer Zeile aufgeführt werden. Die einzelnen Spalten müssen dabei mit || getrennt werden. Jedoch nimmt die Übersichtlichtkeit mit steigemden Textinhalt ab. Leerzeichen können hier helfen um den Text optisch einfacher auszurichten. Diese haben später keinen Einfluss auf die erstellten Seiten. HTML Angaben können bei dieser Art genauso hinzugefügt werden wie in anderen Tabellen. {| width="100%" |width="50%"| {| | Orange || Apfel || more |- | Brot || Torte || more |- | Butter || Eis || and more |} |width="50%"| <pre> {| | Orange || Apfel || more |- | Brot || Torte || more |- | Butter || Eis || and more |} </pre> |} ===Mit HTML Eigenschaften=== Durch das Hinzufügen von HTML Eigenschaften lässt sich das Aussehen der Tabelle verändern. ====border="1"==== {| width="100%" |width="50%"| {| border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ====align="center" border="1"==== {| width="100%" |width="50%"| {| align="center" border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| align="center" border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ====align="right" border="1"==== Eigenschaften lassen sich auch auf individuelle Zellen anwenden. Zahlen zum Beispiel sehen besser aus, wenn sie rechtsbündig stehen. {| width="100%" |width="50%"| {| border="1" |Orange |Apfel |align="right"|12,333.00 |- |Brot |Torte |align="right"|500.00 |- |Butter |Eis |align="right"|1.00 |} |width="50%"| <pre> {| border="1" |Orange |Apfel |align="right"|12,333.00 |- |Brot |Torte |align="right"|500.00 |- |Butter |Eis |align="right"|1.00 |} </pre> |} Man kann Eigenschaften auch auf nur bestimmte Zeilen anwenden. {| width="100%" |width="50%"| {| border="1" |Orange |Apfel |align="right"|12,333.00 |- |Brot |Torte |align="right"|500.00 |- style="font-style:italic;color:green;" |Butter |Eis |align="right"|1.00 |} |width="50%"| <pre> {| border="1" |Orange |Apfel |align="right"|12,333.00 |- |Brot |Torte |align="right"|500.00 |- style="font-style:italic;color:green;" |Butter |Eis |align="right"|1.00 |} </pre> |} ====cellspacing="0" border="1"==== {| width="100%" |width="50%"| {| cellspacing="0" border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| cellspacing="0" border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ====cellpadding="20" cellspacing="0" border="1"==== {| width="100%" |width="50%"| {| cellpadding="20" cellspacing="0" border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| cellpadding="20" cellspacing="0" border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ===Mit HTML Eigenschaften und CSS Definitionen=== CSS-Angaben können in Kombination mit oder ohne HTML-Eigenschaften verwendet werden. ====style="color:green;background-color:#ffffcc;" cellpadding="20" cellspacing="0" border="1"==== {| width="100%" |width="50%"| {| style="color:green;background-color:#ffffcc;" cellpadding="20" cellspacing="0" border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| style="color:green;background-color:#ffffcc;" cellpadding="20" cellspacing="0" border="1" |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ==Table mit TH Kopfzeile== TH (HTML Tabellenkopf) kann mit einem ! vor dem | erstellt werden. Diese Kopfzeile erscheint für gewöhnlich in fett und zentriert. ===Tabellenkopf=== ====pro Spalte==== {| width="100%" |width="50%"| {| border="1" cellpadding="20" cellspacing="0" !lecker !leckerer |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| border="1" cellpadding="20" cellspacing="0" !lecker !leckerer |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ====Colspan="2"==== {| width="100%" |width="50%"| {| border="1" cellpadding="20" cellspacing="0" !colspan="2"|leckerer |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| border="1" cellpadding="20" cellspacing="0" ! colspan="2"|leckerer |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ===seitliche Überschrift=== ====standardmäßig==== {| width="100%" |width="50%"| {| border="1" cellpadding="20" cellspacing="0" !Obst |Orange |Apfel |- !Hauptspeise |Brot |Torte |- !Zutaten |Butter |Eis |} |width="50%"| <pre> {| border="1" cellpadding="20" cellspacing="0" !Obst |Orange |Apfel |- !Hauptspeise |Brot |Torte |- !Zutaten |Butter |Eis |} </pre> |} ====rechtsbündig==== Seitliche Überschriften können wie folgt rechtbündig angeordnet werden: {| width="100%" |width="50%"| {| border="1" cellpadding="20" cellspacing="0" !align="right" |Obst |Orange |Apfel |- !align="right" |Hauptspeise |Brot |Torte |- !align="right" |Zutaten |Butter |Eis |} |width="50%"| <pre> {| border="1" cellpadding="20" cellspacing="0" !align="right" |Obst |Orange |Apfel |- !align="right" |Hauptspeise |Brot |Torte |- !align="right" |Zutaten |Butter |Eis |} </pre> |} ==Beschriftung== Eine '''Tabellenbeschriftung''' kann wie folgt über jeder Tabelle hinzugefügt werden: {| width="100%" |width="50%"| {| border="1" cellpadding="20" cellspacing="0" |+Essenssachen |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| border="1" cellpadding="20" cellspacing="0" |+Essenssachen |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} '''Eigenschaften''' können der Beschriftung wie folgt zugewiesen werden: {| width="100%" |width="50%"| {| border="1" cellpadding="20" cellspacing="0" |+align="bottom" style="color:#e76700;"|''Essenssachen'' |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| border="1" cellpadding="20" cellspacing="0" |+align="bottom" style="color:#e76700;"|''Essenssachen'' |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} ==Tabellen mit H1, H2, H3 usw. Überschriften== HTML H1, H2, H3, H4 usw. Überschriften können auch in Tabellen mit dem üblichen ==Wiki Markup== erstellt werden. Diese müssen dann in einer Zeile mit dem Text stehen. '''Hier ist die Vorschau sehr von Vorteil!''' da mit jeder Kopfzeile ein neuer Abschnitt beginnt, der später editierbar sein wird. Jedoch werden dann Teile der Tabelle beim Bearbeiten fehlen, da diese in einem anderen Abschnitt stehen. Auch muss die Struktur eingehalten werden, da die Überschriften genauso wie andere Überschriften in das Inhaltsverzeichnis eingehen. {| width="100%" |width="50%"| {| border="1" cellpadding="20" cellspacing="0" |colspan="2"| ===Yummiest=== |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} |width="50%"| <pre> {| border="1" cellpadding="20" cellspacing="0" |colspan="2"| ===Yummiest=== |- |Orange |Apfel |- |Brot |Torte |- |Butter |Eis |} </pre> |} [[Help:Tables|Tables (Englisch)]] a767498c563bf600d352ad45a5f94e971f35bdf6 Hilfe:Tables 12 40 71 2010-08-11T11:55:52Z Satria 1 Die Seite wurde neu angelegt: „'''Tables''' may be authored in wiki pages using either XHTML table elements directly, or using wikicode formatting to define the table. XHTML table elements and …“ wikitext text/x-wiki '''Tables''' may be authored in wiki pages using either XHTML table elements directly, or using wikicode formatting to define the table. XHTML table elements and their use are well described on various web pages and will not be discussed here. The benefit of wikicode is that the table is constructed of character symbols which tend to make it easier to perceive the table structure in the article editing view compared to XHTML table elements. As a general rule, it is best to avoid using a table unless you need one. Table markup often complicates page editing. == Wiki table markup summary == {|cellpadding="5" cellspacing="0" border="1" width="60%" | <nowiki>{|</nowiki> | '''table start''' |- | <nowiki>|+</nowiki> | table '''caption,''' ''optional;'' only between '''table start''' and first '''table row''' |- | <nowiki>|-</nowiki> | '''table row,''' ''optional on first row'' -- wiki engine assumes the first row |- | <nowiki>!</nowiki> | '''table header''' cell, ''optional.'' Consecutive '''table header''' cells may be added on same line separated by double marks (<code>!!</code>) or start on new lines, each with its own single mark (<code>!</code>). |- | <nowiki>|</nowiki> | '''table data''' cell, ''required!'' Consecutive '''table data''' cells may be added on same line separated by double marks (<code><nowiki>||</nowiki></code>) or start on new lines, each with its own single mark (<code><nowiki>|</nowiki></code>). |- | <nowiki>|}</nowiki> | '''table end''' |} *The above marks must '''start on a new line''' except the double <code>||</code> and <code>!!</code> for optionally adding consecutive cells to a line. However, blank spaces at the beginning of a line are ignored. *'''XHTML attributes.''' Each mark, except table end, optionally accepts one or more XHTML attributes. Attributes must be on the same line as the mark. Separate attributes from each other with a single space. **Cells and caption (<code>|</code> or <code>||</code>, <code>!</code> or <code>!!</code>, and <code>|+</code>) hold content. So separate any attributes from content with a single pipe (<code>|</code>). Cell content may follow on same line or on following lines. **Table and row marks (<code>{|</code> and <code>|-</code>) do not directly hold content. Do ''not'' add pipe (<code>|</code>) after their optional attributes. If you erroneously add a pipe after attributes for the table mark or row mark the parser will delete it ''and'' your final attribute if it was touching the erroneous pipe! *'''Content''' may (a) follow its cell mark on the same line after any optional XHTML attributes or (b) on lines below the cell mark. Content that uses wiki markup that itself needs to start on a new line, such as lists, headings, or nested tables, must be on its own new line. *'''Escaping''' to insert a pipe (<code>|</code>) character into a table use the &lt;nowiki&gt; markup ==Basics== The following table lacks borders and good spacing but shows the simplest wiki markup table structure. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| |Orange |Apple |- |Bread |Pie |- |Butter |Ice cream |} </pre> | {| |Orange |Apple |- |Bread |Pie |- |Butter |Ice cream |} |} The cells in the same row can be listed on one line separated by <code>||</code> (two pipe symbols). If the text in the cell contains a line break, use <code><nowiki><br /></nowiki></code> instead. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| |Orange||Apple||more |- |Bread||Pie||more |- |Butter||Ice<br />cream||and<br />more |} </pre> | {| |Orange||Apple||more |- |Bread||Pie||more |- |Butter||Ice<br />cream||and<br />more |} |} Extra spaces within cells in the wiki markup, as in the wiki markup below, do not affect the actual table rendering. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| | Orange || Apple || more |- | Bread || Pie || more |- | Butter || Ice cream || and more |} </pre> | {| | Orange || Apple || more |- | Bread || Pie || more |- | Butter || Ice cream || and more |} |} You can have longer text or more complex wiki syntax inside table cells, too: {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| |Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | * Lorem ipsum dolor sit amet * consetetur sadipscing elitr * sed diam nonumy eirmod tempor invidunt |} </pre> | {| |Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | * Lorem ipsum dolor sit amet * consetetur sadipscing elitr * sed diam nonumy eirmod tempor invidunt |} |} === Table headers === Table headers can be created by using "<code>!</code>" (exclamation mark) instead of "<code>|</code>" (pipe symbol). Headers usually show up bold and centered by default. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| ! Item ! Amount ! Cost |- |Orange |10 |7.00 |- |Bread |4 |3.00 |- |Butter |1 |5.00 |- !Total | |15.00 |} </pre> | {| ! Item ! Amount ! Cost |- |Orange |10 |7.00 |- |Bread |4 |3.00 |- |Butter |1 |5.00 |- !Total | |15.00 |} |} ===Caption=== A '''table caption''' can be added to the top of any table as follows. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| |+Food complements |- |Orange |Apple |- |Bread |Pie |- |Butter |Ice cream |} </pre> | {| |+ Food complements |- |Orange |Apple |- |Bread |Pie |- |Butter |Ice cream |} |} == XHTML attributes == You can add XHTML attributes to tables. For the authoritative source on these, see [http://www.w3.org/TR/REC-html40/struct/tables.html the W3C's HTML 4.01 Specification page on tables]. === Attributes on tables === Placing attributes after the table start tag (<code>{|</code>) applies attributes to the entire table. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| border="1" |Orange |Apple |12,333.00 |- |Bread |Pie |500.00 |- |Butter |Ice cream |1.00 |} </pre> | {| border="1" |Orange |Apple |12,333.00 |- |Bread |Pie |500.00 |- |Butter |Ice cream |1.00 |} |} === Attributes on cells === You can put attributes on individual '''cells'''. For example, numbers may look better aligned right. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| border="1" |Orange |Apple |align="right" | 12,333.00 |- |Bread |Pie |align="right" | 500.00 |- |Butter |Ice cream |align="right" | 1.00 |} </pre> | {| border="1" |Orange |Apple |align="right"|12,333.00 |- |Bread |Pie |align="right"|500.00 |- |Butter |Ice cream |align="right"|1.00 |} |} You can also use '''cell''' attributes when you are listing multiple '''cells''' on a single line. Note that the '''cells''' are separated by <code>||</code>, and within each '''cell''' the attribute(s) and value are separated by <code>|</code>. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| border="1" | Orange || Apple || align="right" | 12,333.00 |- | Bread || Pie || align="right" | 500.00 |- | Butter || Ice cream || align="right" | 1.00 |} </pre> | {| border="1" | Orange || Apple || align="right" | 12,333.00 |- | Bread || Pie || align="right" | 500.00 |- | Butter || Ice cream || align="right" | 1.00 |} |} ===Attributes on rows=== You can put attributes on individual '''rows''', too. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| border="1" |Orange |Apple |align="right"|12,333.00 |- |Bread |Pie |align="right"|500.00 |- style="font-style:italic; color:green;" |Butter |Ice cream |align="right"|1.00 |} </pre> | {| border="1" |Orange |Apple |align="right"|12,333.00 |- |Bread |Pie |align="right"|500.00 |- style="font-style:italic; color:green;" |Butter |Ice cream |align="right"|1.00 |} |} ====Simple one-pixel table border==== The default table formatting uses the "border-collapse: separate" model, which adds table cell spacing (which also separates the the table outer border from its content cells). Even with a zero cellspacing, the borders of consecutive cells (and of the overall table container) will add up, so to get a one-pixel separation between cells, you need to selectively remove one or more of the four borders of cells. Such tables may be formatted more simply, using the "border-collapse: collapse" CSS property; in this table formatting model, the cellspacing attribute (or the CSS "border-spacing:" property) and the table's "padding:" CSS property is ignored and only the larger border of adjascent inner cells (or the table border for outer cells) will be used. An example of the above for one-pixel table border, using each model (without need for external extensions): {|border="1" cellspacing="0" cellpadding="2" |- !|You type !width="150"|You get |- | <pre style="font-size: 80%"> {|style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0" |- !style="border-style: solid; border-width: 0 1px 1px 0"| Orange !style="border-style: solid; border-width: 0 0 1px 0"| Apple |- |style="border-style: solid; border-width: 0 1px 0 0"| Bread |style="border-style: solid; border-width: 0"| Pie |} </pre> | {|style="margin: 0; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0" |- !style="border-style: solid; border-width: 0 1px 1px 0"| Orange !style="border-style: solid; border-width: 0 0 1px 0"| Apple |- |style="border-style: solid; border-width: 0 1px 0 0"| Bread |style="border-style: solid; border-width: 0"| Pie |} |- | <pre style="font-size: 80%"> {|style="border-collapse: collapse; border-width: 1px; border-style: solid; border-color: #000" |- !style="border-style: solid; border-width: 1px"| Orange !style="border-style: solid; border-width: 1px"| Apple |- |style="border-style: solid; border-width: 1px"| Bread |style="border-style: solid; border-width: 1px"| Pie |} </pre> | {|style="border-collapse: collapse; border-width: 1px; border-style: solid; border-color: #000" |- !style="border-style: solid; border-width: 1px"| Orange !style="border-style: solid; border-width: 1px"| Apple |- |style="border-style: solid; border-width: 1px"| Bread |style="border-style: solid; border-width: 1px"| Pie |} |} Notes : * When using the "border-width:" CSS shortcut property, the order of the four space-separated specified values is: top, right, bottom, left. When there are fewer than 4 values, the value for left takes its default from the value for right, the value for bottom takes its default from the value for top, and the value for right takes its default from the value for top. * The HTML attributes (such as "width=", "border=", "cellspacing=", "cellpadding=") do not need any length unit (the pixel unit is assumed). The CSS style properties (which override the HTML attributes) require an explicit length unit (if the value is not 0) such as "px" for the pixel. ===HTML colspan and rowspan=== You can use HTML '''colspan''' and '''rowspan''' attributes on cells for advanced layout. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre> {| border="1" !colspan="6"|Shopping List |- |rowspan="2"|Bread & Butter |Pie |Buns |Danish |colspan="2"|Croissant |- |Cheese |colspan="2"|Ice cream |Butter |Yoghurt |} </pre> | {| border="1" !colspan="6"|Shopping List |- |rowspan="2"|Bread & Butter |Pie |Buns |Danish |colspan="2"|Croissant |- |Cheese |colspan="2"|Ice cream |Butter |Yoghurt |} |} ===With HTML attributes and CSS styles=== [[Manual:CSS|CSS]] style attributes can be added with or without other HTML attributes. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; white-space:pre-wrap; word-wrap:break-word; word-break:break-all;"> {| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1" |Orange |Apple |- |Bread |Pie |- |Butter |Ice cream |} </pre> | {| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1" |Orange |Apple |- |Bread |Pie |- |Butter |Ice cream |} |} '''Attributes''' can be added to the caption and headers as follows. {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; white-space:pre-wrap; word-wrap:break-word; word-break:break-all;"> {| border="1" cellpadding="20" cellspacing="0" |+ align="bottom" style="color:#e76700;" |''Food complements'' |- |Orange |Apple |- |Bread |Pie |- |Butter |Ice cream |} </pre> | {| border="1" cellpadding="10" cellspacing="0" |+ align="bottom" style="color:#e76700;" |''Food complements'' |- |Orange |Apple |- |Bread |Pie |- |Butter |Ice cream |} |} ===Accessibility of table header cells=== Table header cells do not explicitly specify which table data cells they apply to (those on their right on the same row, or those below them on the same column). When the table is rendered in a visual 2D environment, this is usually easy to infer. However when tables are rendered on non-visual medias, you can help the browser to determine which table header cell applies to the description of any selected cell (in order to repeat its content in some accessibility helper) using a scope="row" or scope="col" attribute on table header cells. In most cases with simple tables, you'll use scope="col" on all header cells of the first row, and scope="row" on the first cell of the following rows: {| cellspacing="0" border="1" !style="width:50%"|You type !style="width:50%"|You get |- | <pre style="white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; white-space:pre-wrap; word-wrap:break-word; word-break:break-all;"> {| border="1" cellspacing="0" cellpadding="2" |- !scope="col"| Item !scope="col"| Quantity !scope="col"| Price |- !scope="row"| Bread | 0.3 kg | $0.65 |- !scope="row"| Butter | 0.125 kg | $1.25 |- !scope="row" colspan="2"| Total | $1.90 |} </pre> | {| border="1" cellspacing="0" cellpadding="2" |- !scope="col"| Item !scope="col"| Quantity !scope="col"| Price |- !scope="row"| Bread | 0.3 kg | $0.65 |- !scope="row"| Butter | 0.125 kg | $1.25 |- !scope="row" colspan="2"| Total | $1.90 |} |} ==Caveats== ===Negative numbers=== If you start a cell on a new line with a negative number with a minus sign (or a parameter that evaluates to a negative number), your table can get broken, because the characters <code>|-</code> will be parsed as the wiki markup for table row, not table cell. To avoid this, insert a space before the value (<code>| -6</code>) or use in-line cell markup (<code>|| -6</code>). ===CSS vs Attributes=== Table borders specified through CSS rather than the border attribute will render incorrectly in a small subset of text browsers. ===Common attributes for columns, column groups and row groups=== The MediaWiki syntax for tables currently offers no support for specifying common attributes for columns (with the HTML element <code>&lt;col /&gt;</code>), column groups (HTML element <code>&lt;colgroup&gt;...&lt;/colgroup&gt;</code>) and row groups (HTML elements <code>&lt;thead&gt;...&lt;/thead&gt;</code>, <code>&lt;tbody&gt;...&lt;/tbody&gt;<code> and <code>&lt;tfoot&gt;...&lt;/tfoot&gt;</code>). Those standard HTML elements are not accepted even in their HTML or XHTML syntax. All the rows and cells (header or data) of the table are rendered within a single implicit row group (HTML element <code>&lt;tbody&gt;...&lt;/tbody&gt;<code>) without any attributes or styles. 0114cd0bce6ebc5ae4f7d4bc3ae4e6756ccb887b Abkürzungen 0 2 72 32 2010-08-11T11:57:50Z Satria 1 /* D */ wikitext text/x-wiki Meine Liste mit Abkürzungen aller Art: ===A=== ===B=== ===C=== ===D=== ;DNS:<u>D</u>esoxyribo<u>n</u>uklein<u>s</u>äure ;DoS:Denial of Service ===E=== ===F=== ===G=== ;GMCH:Graphics and Memory Controller Hub. ''Die Chipsatzkomponente, die die Kommunikation zwischen der CPU und allen anderen Geräten übernimmt.'' ===H=== ===I=== ===J=== ===K=== ===L=== ===M=== ;MTBF:Mean Time Between Failures. ===N=== ===O=== ===P=== ===Q=== ===R=== ===S=== ===T=== ===U=== ===V=== ===W=== ===X=== ===Y=== ===Z=== fb349a0cc71b162dd45f078b0949367aeabb0be9 73 72 2010-08-11T11:59:46Z Satria 1 /* D */ wikitext text/x-wiki Meine Liste mit Abkürzungen aller Art: ===A=== ===B=== ===C=== ===D=== ;DNS:<u>D</u>esoxyribo<u>n</u>uklein<u>s</u>äure [[DNS|--> DNS]] ;DoS:Denial of Service ===E=== ===F=== ===G=== ;GMCH:Graphics and Memory Controller Hub. ''Die Chipsatzkomponente, die die Kommunikation zwischen der CPU und allen anderen Geräten übernimmt.'' ===H=== ===I=== ===J=== ===K=== ===L=== ===M=== ;MTBF:Mean Time Between Failures. ===N=== ===O=== ===P=== ===Q=== ===R=== ===S=== ===T=== ===U=== ===V=== ===W=== ===X=== ===Y=== ===Z=== 5d497efa08ccd1ba53d0023c44e5bc010b63b676 74 73 2010-08-11T12:00:46Z Satria 1 /* R */ wikitext text/x-wiki Meine Liste mit Abkürzungen aller Art: ===A=== ===B=== ===C=== ===D=== ;DNS:<u>D</u>esoxyribo<u>n</u>uklein<u>s</u>äure [[DNS|--> DNS]] ;DoS:Denial of Service ===E=== ===F=== ===G=== ;GMCH:Graphics and Memory Controller Hub. ''Die Chipsatzkomponente, die die Kommunikation zwischen der CPU und allen anderen Geräten übernimmt.'' ===H=== ===I=== ===J=== ===K=== ===L=== ===M=== ;MTBF:Mean Time Between Failures. ===N=== ===O=== ===P=== ===Q=== ===R=== ;RNA:<u>R</u>ibo<u>n</u>uklein<u>s</u>äure [[RNA|--> RNA]] ===S=== ===T=== ===U=== ===V=== ===W=== ===X=== ===Y=== ===Z=== 543210341c99f601ad065514fcb58e0ff2bc3ccf 75 74 2010-08-11T12:01:29Z Satria 1 /* R */ wikitext text/x-wiki Meine Liste mit Abkürzungen aller Art: ===A=== ===B=== ===C=== ===D=== ;DNS:<u>D</u>esoxyribo<u>n</u>uklein<u>s</u>äure [[DNS|--> DNS]] ;DoS:Denial of Service ===E=== ===F=== ===G=== ;GMCH:Graphics and Memory Controller Hub. ''Die Chipsatzkomponente, die die Kommunikation zwischen der CPU und allen anderen Geräten übernimmt.'' ===H=== ===I=== ===J=== ===K=== ===L=== ===M=== ;MTBF:Mean Time Between Failures. ===N=== ===O=== ===P=== ===Q=== ===R=== ;RNS:<u>R</u>ibo<u>n</u>uklein<u>s</u>äure [[RNS|--> RNS]] ===S=== ===T=== ===U=== ===V=== ===W=== ===X=== ===Y=== ===Z=== f58405fcffae39132f6484dd22fa2f70d657a38e 102 75 2010-10-08T10:44:50Z Satria 1 /* C */ wikitext text/x-wiki Meine Liste mit Abkürzungen aller Art: ===A=== ===B=== ===C=== ;CMOS:Complementary Metal Oxide Semiconductor ===D=== ;DNS:<u>D</u>esoxyribo<u>n</u>uklein<u>s</u>äure [[DNS|--> DNS]] ;DoS:Denial of Service ===E=== ===F=== ===G=== ;GMCH:Graphics and Memory Controller Hub. ''Die Chipsatzkomponente, die die Kommunikation zwischen der CPU und allen anderen Geräten übernimmt.'' ===H=== ===I=== ===J=== ===K=== ===L=== ===M=== ;MTBF:Mean Time Between Failures. ===N=== ===O=== ===P=== ===Q=== ===R=== ;RNS:<u>R</u>ibo<u>n</u>uklein<u>s</u>äure [[RNS|--> RNS]] ===S=== ===T=== ===U=== ===V=== ===W=== ===X=== ===Y=== ===Z=== 48c43de5ae300c151efabc0528353626578beb1c Hilfe:Inhaltsverzeichnis 12 32 77 50 2010-08-11T12:02:46Z Satria 1 wikitext text/x-wiki [[Help:Bearbeiten|Bearbeiten]] ==Quellen== [http://www.mediawiki.org/wiki/Help:Contents Wikimedia Hilfe] 0d84d24e071fff2bc7cea5fd8630f05cdb96508c 78 77 2010-08-11T12:03:01Z Satria 1 wikitext text/x-wiki [[Help:Bearbeiten|Hilfe beim Bearbeiten]] ==Quellen== [http://www.mediawiki.org/wiki/Help:Contents Wikimedia Hilfe] bbf7744d6c2647eba09c386a6f46086b80337df5 79 78 2010-08-11T12:03:10Z Satria 1 wikitext text/x-wiki [[Help:Bearbeiten|Hilfe beim Bearbeiten]] <br> ==Quellen== [http://www.mediawiki.org/wiki/Help:Contents Wikimedia Hilfe] ca46786b84bd12198e25243c7805936d74edbd4a 80 79 2010-08-11T12:03:21Z Satria 1 wikitext text/x-wiki *[[Help:Bearbeiten|Hilfe beim Bearbeiten]] ==Quellen== [http://www.mediawiki.org/wiki/Help:Contents Wikimedia Hilfe] 007450af4f8971033dbb8d03b95dd742f8f89440 DNS 0 7 82 12 2010-08-11T12:12:10Z Satria 1 wikitext text/x-wiki Es gibt 4 organische Basen in der DNS (engl. DNA), von denen jeweils immer 2 zueinander komplementär sind: Adenin<br> Thymin<br> Cytosin<br> Guanin<br> ==Quellen== [http://de.wikipedia.org/wiki/Desoxyribonukleins%C3%A4ure Desoxyribonukleinsäure auf Wikipedia]<br> [http://de.wikipedia.org/wiki/GC-Gehalt GC Gehalt auf Wikipedia] dea35398d374ed9fdf8da6a94c619e96734a9a8d RNS 0 41 83 2010-08-11T12:12:32Z Satria 1 Die Seite wurde neu angelegt: „Es gibt 4 organische Basen in der DNS (engl. DNA), von denen jeweils immer 2 zueinander komplementär sind: Adenin<br> Uracil<br> Cytosin<br> Guanin<br> ==Quel…“ wikitext text/x-wiki Es gibt 4 organische Basen in der DNS (engl. DNA), von denen jeweils immer 2 zueinander komplementär sind: Adenin<br> Uracil<br> Cytosin<br> Guanin<br> ==Quellen== [http://de.wikipedia.org/wiki/Ribonukleins%C3%A4ure Ribonukleinsäure auf Wikipedia] d1b1bf9b18a7d057868b49fb2e8516262e13aa2d 84 83 2010-08-11T12:12:52Z Satria 1 wikitext text/x-wiki Es gibt 4 organische Basen in der RNS (engl. RNA), von denen jeweils immer 2 zueinander komplementär sind: Adenin<br> Uracil<br> Cytosin<br> Guanin<br> ==Quellen== [http://de.wikipedia.org/wiki/Ribonukleins%C3%A4ure Ribonukleinsäure auf Wikipedia] 92b76528f76fe7ad3739c415d2e704e7fce3b7ac Hilfe:HTML/en 12 42 86 2010-08-11T12:43:46Z Satria 1 Die Seite wurde neu angelegt: „==Permitted HTML== The following [[w:HTML element|HTML element]]s are currently permitted: {| border="0" cellpadding="5" | valign="top"| * [[w:HTML_eleme…“ wikitext text/x-wiki ==Permitted HTML== The following [[w:HTML element|HTML element]]s are currently permitted: {| border="0" cellpadding="5" | valign="top"| * [[w:HTML_element#Phrase elements|&lt;abbr&gt;]] * [[w:HTML_element#Official presentational markup|&lt;b&gt;]] * [[w:HTML_element#Official presentational markup|&lt;big&gt;]] * [[w:HTML_element#General block elements|&lt;blockquote&gt;]] * [[w:HTML_element#Images and objects|&lt;br&gt;]] * [[w:HTML_element#Tables|&lt;caption&gt;]] * [[w:HTML_element#Official presentational markup|&lt;center&gt;]] * [[w:HTML_element#General phrase elements|&lt;cite&gt;]] * [[w:HTML_element#Computer code phrase elements|&lt;code&gt;]] * [[w:HTML_element#Lists|&lt;dd&gt;]] * [[w:HTML_element#Special inline elements|&lt;del&gt;]] * [[w:HTML_element#Other containers|&lt;div&gt;]] * [[w:HTML_element#Lists|&lt;dl&gt;]] * [[w:HTML_element#Lists|&lt;dt&gt;]] * [[w:HTML_element#General phrase elements|&lt;em&gt;]] * [[w:HTML_element#Official presentational markup|&lt;font&gt;]] | valign="top"| * [[w:HTML_element#Headings|&lt;h1&gt;]] * [[w:HTML_element#Headings|&lt;h2&gt;]] * [[w:HTML_element#Headings|&lt;h3&gt;]] * [[w:HTML_element#Headings|&lt;h4&gt;]] * [[w:HTML_element#Headings|&lt;h5&gt;]] * [[w:HTML_element#Headings|&lt;h6&gt;]] * [[w:HTML_element#General block elements|&lt;hr&gt;]] * [[w:HTML_element#Official presentational markup|&lt;i&gt;]] * [[w:HTML_element#Special inline elements|&lt;ins&gt;]] * [[w:HTML_element#Lists|&lt;li&gt;]] * [[w:Ordered list|&lt;ol&gt;]] * [[w:HTML_element#General block elements|&lt;p&gt;]] * [[w:HTML_element#Other containers|&lt;pre&gt;]] * [http://www.w3.org/TR/1999/WD-ruby-19990322/ &lt;rb&gt;] * [http://www.w3.org/TR/1999/WD-ruby-19990322/ &lt;rp&gt;] * [http://www.w3.org/TR/1999/WD-ruby-19990322/ &lt;rt&gt;] * [http://www.w3.org/TR/1999/WD-ruby-19990322/ &lt;ruby&gt;] | valign="top"| * [[w:HTML_element#Official presentational markup|&lt;s&gt;]] * [[w:HTML_element#Official presentational markup|&lt;small&gt;]] * [[w:HTML_element#Span element|&lt;span&gt;]] * [[w:HTML_element#Official presentational markup|&lt;strike&gt;]] * [[w:HTML_element#General phrase elements|&lt;strong&gt;]] * [[w:HTML_element#Special inline elements|&lt;sub&gt;]] * [[w:HTML_element#Special inline elements|&lt;sup&gt;]] * [[w:HTML_element#Tables|&lt;table&gt;]] * [[w:HTML_element#Tables|&lt;td&gt;]] * [[w:HTML_element#Tables|&lt;th&gt;]] * [[w:HTML_element#Tables|&lt;tr&gt;]] * [[w:HTML_element#Presentational markup|&lt;tt&gt;]] * [[w:HTML_element#Presentational markup|&lt;u&gt;]] * [[w:Ordered list|&lt;ul&gt;]] * [[w:HTML_element#Computer code phrase elements|&lt;var&gt;]] * [[w:HTML_element#HTML comment|&lt;!-- ... --&gt;]] |} For many HTML elements, more convenient wikitext code is available, see [[Help:Editing]]. On the other hand, HTML tags allow an <tt>id</tt> that can be referenced in one's [[Help:User style|user style]] css, and allows the tag to be used as link target. For example, the anchor element <tt>&lt;a></tt> is not allowed, so the wikitext : <code><nowiki><a href="http://meta.wikimedia.org/">Main Page</a></nowiki></code> is treated like the wikitext : <code><nowiki>&amp;lt;a href="http://meta.wikimedia.org/"&amp;gt;Main Page&amp;lt;/a&amp;gt;</nowiki></code> and is therefore displayed as : <a href="http://meta.wikimedia.org/">Main Page</a> which is unlikely to be what the editor intended. Instead of using the anchor element (&lt;a&gt;) the wiki markup for external reference is recommended (enclosed in square brackets with the URL separated from the contents by a single space): : <code><nowiki>[http://meta.wikimedia.org/ Main Page]</nowiki></code> displays as: : [http://meta.wikimedia.org/ Main Page] <br clear=all><!-- stop floating navbox before pre --> The following excerpt from [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/Sanitizer.php?view=markup Sanitizer.php] additionally shows which attributes are allowed. <source lang=php> $htmlpairsStatic = array( # Tags that must be closed 'b', 'del', 'i', 'ins', 'u', 'font', 'big', 'small', 'sub', 'sup', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'cite', 'code', 'em', 's', 'strike', 'strong', 'tt', 'var', 'div', 'center', 'blockquote', 'ol', 'ul', 'dl', 'table', 'caption', 'pre', 'ruby', 'rt' , 'rb' , 'rp', 'p', 'span', 'u', 'abbr' ); $htmlsingle = array( 'br', 'hr', 'li', 'dt', 'dd' ); $htmlsingleonly = array( # Elements that cannot have close tags 'br', 'hr' ); $htmlnest = array( # Tags that can be nested--?? 'table', 'tr', 'td', 'th', 'div', 'blockquote', 'ol', 'ul', 'dl', 'font', 'big', 'small', 'sub', 'sup', 'span' ); $tabletags = array( # Can only appear inside table, we will close them 'td', 'th', 'tr', ); $htmllist = array( # Tags used by list 'ul','ol', ); $listtags = array( # Tags that can appear in a list 'li', ); </source> == Tags == {{mlw|HTML_element|Span|<code>'''&lt;span>'''</code>}} is a generic inline text container. <code>'''&lt;font>'''</code> is a similar tag which is [[w:Deprecation|deprecate]]d (should not be used) in favor of <nowiki><span></nowiki>.'' For example <source lang=html4strict> a <font color="red">red</font> word. </source> produces the same result as <source lang=html4strict> a <span style="color:red">red</span> word. </source> See also {{tim|font size demo}} and {{mlm|Help:Text color}}. It's pointless to combine the legacy tag <tt>&lt;font&gt;</tt> with inline CSS; legacy browsers would ignore the CSS, while modern browsers support <tt>&lt;span&gt;</tt> (see above). Note that in most cases, one can use a more descriptive tag, for instance, <strong><nowiki><strong></nowiki></strong> to indicate an important piece of text, or <em><nowiki><em></nowiki></em> (subject to the same things as strong) to indicate an emphasized piece of text. This not only draws the user's attention to the text, but can also alert those who are using nonvisual browsers or have sight impairments, etc. to the fact that that is <em>emphasized text</em>. ===Using <nowiki><span></nowiki> as a link target=== The standard way of providing a named anchor as an invisible target (i.e. <code><a name="Foo"></code>) doesn't work (since all <code><a></code> tags are converted), and [http://www.w3.org/TR/html401/struct/links.html an alternative suggested by the W3C], <code><nowiki><hN id="Foo"></hN></nowiki></code>, produces an "[Edit]" link. However, <code><nowiki><span id="Foo"></nowiki></code> does produce a target that can be the destination of a link. Note that it doesn't work everywhere; for instance, in a table, it has to be inside a cell before some browsers will jump to it properly. ===<nowiki><div></nowiki>=== <code>'''&lt;div>'''</code> is a generic block container. Rules: * <nowiki><div></nowiki> should be followed by a newline * <nowiki></div></nowiki> should be preceded by a newline *<nowiki></div></nowiki> followed by text on the same line, two newlines and text before <nowiki><div></nowiki> on the same line should be avoided (because the two newlines only produce a space) Example: {{xpdplain| --|--| |o p<|div>q<|/div>r s<|div>|t| |u| |v| |x<|/div>y s<|div>|t| |u| |v| |x<|/div>y z| |--|--| }} ===HTML comment=== Using {{tim|t}}: *{{xpd|t}} *"<code><nowiki>{{subst:xpd|t}}</nowiki>"</code> gives the wikitext "<code>&lt;!--t-->start-pqr-end"<code>, producing HTML code without the comment. The "Remove comments" option of [[mw:Extension:ExpandTemplates|ExpandTemplates]] selects whether comments are removed, not just in the final result but throughout the expansion process. This affects the result of parser functions: a comment in the expression of #expr or in the condition of #ifexpr gives an error message unless "Remove comments" is on, and comments affect #if and ifeq. Example: Wikitext: ---- <pre> {{#expr:<!--p-->3}} {{#ifeq:<!--p-->3|3|1|0}} {{#if:<!--p-->|1|0}} </pre> ---- Result of normal expansion, and of ExpandTemplates with "Remove comments" on: ---- {{#expr:<!--p-->3}} {{#ifeq:<!--p-->3|3|1|0}} {{#if:<!--p-->|1|0}} ---- Result of full substitution, and of ExpandTemplates with "Remove comments" off: ---- <strong class="error">Expression error: Unrecognised punctuation character ""</strong> 0 1 ---- Therefore it is typically better to avoid comments in these places, and to put the comment before or after the parser function. In the case of nested parser functions, to avoid having to put the comments outside the whole, an alternative is <nowiki>{{void|</nowiki>''comment''}}. In the case of substitution of the parser function, "void" has to be substituted too, e.g. in a template allowing multi-level substitution we can put <nowiki>{{{{{subst1|}}}#expr:3*{{{1}}} {{{{{subst1|}}}void|</nowiki> multiply by 3 }}}}. Another alternative is making the comment the name of a parameter (in the likely case that it is unused), with the empty string as default, e.g. <nowiki>{{{ multiply by 3 |}}} or, to recognize the intention, use pseudo comment tags: {{{<!- multiply by 3 ->|}}}, or real ones, if the empty string is not used as parameter: {{{<!-- multiply by 3 -->|}}}</nowiki>. See also {{tim|t comment}}. == Attributes == Most tags can have a <tt>style</tt> attribute. For example <source lang=html4strict> <div style="font-size:80%"> This is <span style="color:red">red</span> text. </div> </source> produces: <blockquote style="border:1px dotted gray; padding-left:20px"> <div style="font-size:80%"> This is <span style="color:red">red</span> text. </div> </blockquote> Most tags can have classes and IDs. They can be used in conjunction with stylesheets to give a piece of text a descriptive class (or unique identifier) and to refer to that in a stylesheet. For example <source lang=html4strict> <div class="infobox">Example infobox</div> </source> <div class="infobox">Example infobox</div> Produces the box which floats on the right because <tt>infobox</tt> class is already defined in local [[Mediawiki:Common.css]]. <br style=clear:all> Classes and IDs can also be used by Javascript code, for example see [[:en:Template_talk:Link_FA#How_does_it_work.3F|how {Link FA} works]] in enwiki. Another attribute example is <tt>title</tt>, for example used in {{tl|H:title}} template: note the hover box over "20000 ft" <blockquote style="border:1px dotted gray; padding-left:20px"> "a height of {{h:title|6.1 km|20000 ft}} above sea level" </blockquote> <!-- This is suitable if the color is specifically intended to be red; if it is just for emphasis a more general term for the class would be more appropriate, because css allows the user to choose another method of emphasis (another color, bold, enlarged, etc.). Note that many readers will not have their own css with such lines as ".red {color:red}", so one cannot refer to "the red text above", etc. --> == Tags with special effect == === Pre === <nowiki><pre></nowiki> tags work as the combination of <nowiki><nowiki></nowiki> and the standard HTML <nowiki><pre></nowiki> tag: the content will preformatted, and it will not be parsed, but shown as in the wikitext source. If you want preformatted but parsed text, use a space in the beginning of the line instead. For example, <nowiki><pre>This word is <b>bold</b>.</pre> This word is <b>bold</b>.</nowiki> will render as <pre>This word is <b>bold</b>.</pre> This word is <b>bold</b>. === Comments === HTML comments in the wikitext (<nowiki><!-- ... --></nowiki>) will not appear in the HTML code at all. === Headers === Headers (<nowiki><h1>...<h6></nowiki>) will be treated in a similar way as wikicode headers: <h6>sample header</h6> Note that it appears in the table of contents and has an accompanying edit link. There are some minor differences though: editing such a section won't prefill the edit summary, and the browser won't jump to the beginning of the section when saving the page. Thus, you should use the wikitext equivalents instead. == Exceptions == In some pages in the MediaWiki namespace (typically the short messages like button labels) HTML does not work, and e.g. &lt;span id=abc&gt; produces the HTML &amp;lt;span id=abc&amp;gt; rendered by the browser as &lt;span id=abc&gt;. Some others are interpreted as pure HTML (thus any tag can be used, but wikicode won't be transformed to HTML). User CSS and JS pages (see [[Help:User style]]) are interpreted as if inside a <nowiki><pre></nowiki> block. From MW 1.11 this also goes for sitewide CSS/JS; in earlier versions, you have to manually add <tt><nowiki>/*<pre>*/</nowiki></tt> to the beginning and <tt><nowiki>/*</pre>*/</nowiki></tt> to the end of those pages to avoid strange rendering. == External links == * HTML 4.01 specification: [http://www.w3.org/TR/html401/index/elements.html elements] | [http://www.w3.org/TR/html401/index/attributes.html attributes] * For customizing the handling of HTML in MediaWiki, see the HTML and Tidy sections in [[mw:Manual:Configuration settings]] * Some extensions allow adding arbitrary HTML to a page, for example [[mw:Extension:AddHTML]],[[mw:Extension:SecureHTML]] and [[mw:Extension:Secure HTML]]; see [http://www.mediawiki.org/wiki/Manual:%24wgRawHtml $wgRawHtml] for a more complete list * Within the MediaWiki codebase, these HTML checks happen in [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/Sanitizer.php includes/Sanitizer.php] b50663136b73420df3e6959ff895494910b75199 89 86 2010-08-11T12:55:00Z Satria 1 wikitext text/x-wiki For many HTML elements, more convenient wikitext code is available, see [[Help:Wiki markup]], however there are some situations in which the HTML alternative is useful, for example creating a link to a particular element of a table. ==Permitted HTML== The following [[HTML element]]s are currently permitted: * [[HTML element#General|&lt;abbr&gt;]] **Marks an abbreviation, and can make the full form available: <abbr title="abbreviation">abbr.</abbr> * [[HTML element#Presentation|&lt;b&gt;]] **<b>Sets font to boldface where possible</b> * [[HTML element#Presentation|&lt;big&gt;]] **<big>Increases</big> font size * [[HTML element#Other block elements|&lt;blockquote&gt;]] **A block-level quotation, <blockquote>for when the quotation includes block level elements,</blockquote> e.g. paragraphs * [[HTML element#Other inline elements|&lt;br&gt;]] **A forced<br/> line-break * [[HTML element#Tables|&lt;caption&gt;]] **<table><caption>Specifies a caption for a table</caption></table> * [[HTML element#Other block elements|&lt;center&gt;]] **<center>Creates a block-level center-aligned division</center> Use <code>&lt;div&gt;</code> instead * [[HTML element#Other inline elements|&lt;cite&gt;]] **<cite>A citation</cite> * [[HTML element#Computer phrase elements|&lt;code&gt;]] **<code>A code snippet</code> * [[HTML element#Lists|&lt;dd&gt;]] **<dl><dd>The definition of a term,</dd><dd>in a definition list</dd></dl> * [[HTML element#Other block elements|&lt;del&gt;]] **<del>Deleted text</del> * [[HTML element#Other block elements|&lt;div&gt;]] **<div>A block-level logical division</div> * [[HTML element#Lists|&lt;dl&gt;]] **<dl>A definition list (consisting of definition terms paired with definitions)</dl> * [[HTML element#Lists|&lt;dt&gt;]] **<dl><dt>A definition term</dt><dt>in a definition list</dt></dl> * [[HTML element#General|&lt;em&gt;]] **<em>Emphasis</em> * [[HTML element#Presentation|&lt;font&gt;]] **<font color="green" size="-1" face="Courier">Can specify the font color with the color attribute, typeface with the face attribute, and absolute or relative size with the size attribute.</font> use <nowiki><span></nowiki> instead * [[HTML element#Basic text|&lt;h1&gt;]] - [[HTML element#Basic text|&lt;h6&gt;]] **<nowiki><h1>Section headings at different levels.</h1></nowiki> * [[HTML element#Other block elements|&lt;hr&gt;]] **<hr>A horizontal rule</hr> * [[HTML element#Presentation|&lt;i&gt;]] **<i>Sets font to italic where possible</i> * [[HTML element#Other block elements|&lt;ins&gt;]] **<ins>Inserted text</ins> * [[HTML element#Lists|&lt;li&gt;]] **<li>A list item in ordered (ol)</li><li>or unordered (ul) lists</li> * [[HTML element#Lists|&lt;ol&gt;]] **<ol><li>An ordered...</li><li>(enumerated) list</li></ol> * [[HTML element#Basic text|&lt;p&gt;]] **Creates a <p>paragraph,</p> perhaps the most common block level element * [[HTML element#Other block elements|&lt;pre&gt;]] **a <pre>Pre-formatted text</pre> b * [[Ruby character#Ruby markup|&lt;rb&gt;]] **東 vs <ruby style="font-size:1.2em;"><rb>東</rb></ruby> * [[Ruby character#Ruby markup|&lt;rp&gt;]] **( vs <ruby style="font-size:1.2em;"><rp>(</rp></ruby> * [[Ruby character#Ruby markup|&lt;rt&gt;]] **とう vs <ruby style="font-size:1.2em;"><rt>とう</rt></ruby> * [[Ruby character#Ruby markup|&lt;ruby&gt;]] **東(とう)京(きょう) vs <ruby style="font-size:1.2em;"><rb>東</rb><rp>(</rp><rt>とう</rt><rp>)</rp></ruby> <ruby style="font-size:1.2em;"><rb>京</rb><rp>(</rp><rt>きょう</rt><rp>)</rp></ruby> * [[HTML element#Presentation|&lt;s&gt;]] **<s>Strike-through text</s> * [[HTML element#Presentation|&lt;small&gt;]] **<small>Decreases</small> font size * [[HTML element#Span|&lt;span&gt;]] **<span>An inline logical division</span> * [[HTML element#Presentation|&lt;strike&gt;]] **<s>Strike-through text</s> * [[HTML element#General|&lt;strong&gt;]] ** * [[HTML element#Other inline elements|&lt;sub&gt;]] **Mark<sub>subscript</sub> * [[HTML element#Other inline elements|&lt;sup&gt;]] **Mark<sup>superscript</sup> * [[HTML element#Tables|&lt;table&gt;]] **<table>Identifies a table</table> * [[HTML element#Tables|&lt;td&gt;]] **<table><td>A table data cell</td></table> * [[HTML element#Tables|&lt;th&gt;]] **<table><th>A table header cell; contents are conventionally displayed bold and centered</th></table> * [[HTML element#Tables|&lt;tr&gt;]] **<table><tr>Contains a row of cells in a table</tr></table> * [[HTML element#Presentation|&lt;tt&gt;]] **<tt>Fixed-width font</tt> * [[HTML element#Presentation|&lt;u&gt;]] **<u>Underlines text</u> * [[HTML element#Lists|&lt;ul&gt;]] **<ul><li>An unordered...</li><li>(bulleted) list</li></ul> * [[HTML element#Computer phrase elements|&lt;var&gt;]] **<var>Variable</var> * [[HTML element#Comments|&lt;!-- ... --&gt;]] **<nowiki><!--Comment--></nowiki> ==Anchors== HTML tags allow an <code>id</code> attribute that can be referenced in one's [[Help:User style|user style]] CSS, and allows the element to be used as link target. However, the anchor element <code>a</code> is not allowed, so the wikitext <code><nowiki><a href="http://meta.wikimedia.org/">Main Page</a></nowiki></code> is treated like the wikitext <code><nowiki>&amp;lt;a href="http://meta.wikimedia.org/"&amp;gt;Main Page&amp;lt;/a&amp;gt;</nowiki></code> and is therefore displayed as {{Quote|1=<a href="http://meta.wikimedia.org/">Main Page</a>}} which is unlikely to be what the editor intended. Instead of using the anchor element (&lt;a&gt;) the wiki markup for external reference is required (enclosed in square brackets with the URL separated from the contents by a single space): <code><nowiki>[http://meta.wikimedia.org/ Main Page]</nowiki></code> displays as {{Quote|[http://meta.wikimedia.org/ Main Page]}} The following excerpt from [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/Sanitizer.php?view=markup Sanitizer.php] additionally shows which attributes are allowed. <source lang="php"> $htmlpairsStatic = array( # Tags that must be closed 'b', 'del', 'i', 'ins', 'u', 'font', 'big', 'small', 'sub', 'sup', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'cite', 'code', 'em', 's', 'strike', 'strong', 'tt', 'var', 'div', 'center', 'blockquote', 'ol', 'ul', 'dl', 'table', 'caption', 'pre', 'ruby', 'rt' , 'rb' , 'rp', 'p', 'span', 'u', 'abbr' ); $htmlsingle = array( 'br', 'hr', 'li', 'dt', 'dd' ); $htmlsingleonly = array( # Elements that cannot have close tags 'br', 'hr' ); $htmlnest = array( # Tags that can be nested--?? 'table', 'tr', 'td', 'th', 'div', 'blockquote', 'ol', 'ul', 'dl', 'font', 'big', 'small', 'sub', 'sup', 'span' ); $tabletags = array( # Can only appear inside table, we will close them 'td', 'th', 'tr', ); $htmllist = array( # Tags used by list 'ul','ol', ); $listtags = array( # Tags that can appear in a list 'li', ); </source> == Tags == {{mlw|HTML element|Span|<code>'''&lt;span>'''</code>}} is a generic inline text container. <code>'''&lt;font>'''</code> is a similar tag which is [[deprecation|deprecate]]d (should not be used) in favor of <nowiki><span></nowiki>.'' For example <source lang=html4strict> a <font color="red">red</font> word. </source> produces the same result as <source lang=html4strict> a <span style="color:red">red</span> word. </source> See also {{tim|font size demo}} and [[m:Help:Text color]]. It's pointless to combine the legacy tag <tt>&lt;font&gt;</tt> with inline CSS; legacy browsers would ignore the CSS, while modern browsers support <tt>&lt;span&gt;</tt> (see above). Note that in most cases, one can use a more descriptive tag, for instance, <strong><nowiki><strong></nowiki></strong> to indicate an important piece of text, or <em><nowiki><em></nowiki></em> (subject to the same things as strong) to indicate an emphasized piece of text. This not only draws the user's attention to the text, but can also alert those who are using nonvisual browsers or have sight impairments, etc. to the fact that that is <em>emphasized text</em>. ===Using <nowiki><span></nowiki> as a link target=== The standard way of providing a named anchor as an invisible target (i.e. <code><a name="Foo"></code>) doesn't work (since all <code><a></code> tags are converted), and [http://www.w3.org/TR/html401/struct/links.html an alternative suggested by the W3C], <code><nowiki><hN id="Foo"></hN></nowiki></code>, produces an "[Edit]" link. However, <code><nowiki><span id="Foo"/></nowiki></code> does produce a target that can be the destination of a link. (This is silently changed to <code><nowiki><span id="Foo"></span></nowiki></code>). Note that it doesn't work everywhere; for instance, in a table, it has to be inside a cell before some browsers will jump to it properly. This technique can be used to produce immutable links from one article to a section of another, which continue to work even if the section name is changed by someone who does not realize that another article links there. For example, <code><nowiki><span id="immutable link from Article"/></nowiki></code>. ===<nowiki><div></nowiki>=== <code>'''&lt;div>'''</code> is a generic block container. Rules: * <nowiki><div></nowiki> should be followed by a newline * <nowiki></div></nowiki> should be preceded by a newline *<nowiki></div></nowiki> followed by text on the same line, two newlines and text before <nowiki><div></nowiki> on the same line should be avoided (because the two newlines only produce a space) ===HTML comment=== Using {{tim|t}}: *{{xpd|t}} *"<code><nowiki>{{subst:xpd|t}}</nowiki>"</code> gives "&lt;!--t-->start-pqr-end", producing HTML code without the comment. The "Remove comments" option of [[mw:Extension:ExpandTemplates|ExpandTemplates]] selects whether comments are removed, not just in the final result but throughout the expansion process. This affects the result of parser functions: a comment in the expression of #expr or in the condition of #ifexpr gives an error message unless "Remove comments" is on, and comments affect #if and #ifeq. Example: Wikitext: ---- <pre> {{#expr:<!--p-->3}} {{#ifeq:<!--p-->3|3|1|0}} {{#if:<!--p-->|1|0}} </pre> ---- Result of normal expansion, and of ExpandTemplates with "Remove comments" on: ---- {{#expr:<!--p-->3}} {{#ifeq:<!--p-->3|3|1|0}} {{#if:<!--p-->|1|0}} ---- Result of full substitution, and of ExpandTemplates with "Remove comments" off: ---- 0 0 1 ---- Therefore it is typically better to avoid comments in these places, and to put the comment before or after the parser function. In the case of nested parser functions, to avoid having to put the comments outside the whole, an alternative is <nowiki>{{void|</nowiki>''comment''}}. In the case of substitution of the parser function, "void" has to be substituted too, e.g. in a template allowing multi-level substitution we can put <nowiki>{{{{{subst1|}}}#expr:3*{{{1}}} {{{{{subst1|}}}void|</nowiki> multiply by 3 }}}}. Another alternative is making the comment the name of a parameter (in the likely case that it is unused), with the empty string as default, e.g. <nowiki>{{{ multiply by 3 |}}} or, to recognize the intention, use pseudo comment tags: {{{<!- multiply by 3 ->|}}}, or real ones, if the empty string is not used as parameter: {{{<!-- multiply by 3 -->|}}}</nowiki>. See also {{tim|t comment}}. == Attributes == Most tags can have a <tt>style</tt> attribute. For example <source lang=html4strict> <div style="font-size:80%"> This is <span style="color:red">red</span> text. </div> </source> produces: <blockquote style="border:1px dotted gray; padding-left:20px"> <div style="font-size:80%"> This is <span style="color:red">red</span> text. </div> </blockquote> Most tags can have classes and IDs. They can be used in conjunction with stylesheets to give a piece of text a descriptive class (or unique identifier) and to refer to that in a stylesheet. For example <source lang=html4strict> <div class="infobox">Example infobox</div> </source> <div class="infobox">Example infobox</div> Produces the box which floats on the right because <tt>infobox</tt> class is already defined in local [[Mediawiki:Common.css]]. <br style=clear:all> Classes and IDs can also be used by Javascript code, for example see [[:en:Template_talk:Link_FA#How_does_it_work.3F|how {Link FA} works]] in enwiki. Classes are also widely used to create [[microformat]]s. See [[WP:UF|the microformats project]] for more information. Some [[Wikipedia:WikiProject Microformats/classes|class names are reserved]] for use in microformats. Another attribute example is <tt>title</tt>, for example used in {{tl|H:title}} template: note the hover box over "20000 ft" <blockquote style="border:1px dotted gray; padding-left:20px"> "a height of {{h:title|6.1 km|20000 ft}} above sea level" </blockquote> <!-- This is suitable if the color is specifically intended to be red; if it is just for emphasis a more general term for the class would be more appropriate, because css allows the user to choose another method of emphasis (another color, bold, enlarged, etc.). Note that many readers will not have their own css with such lines as ".red {color:red}", so one cannot refer to "the red text above", etc. --> == Tags with special effect == === Pre === <nowiki><pre></nowiki> tags work as the combination of <nowiki><nowiki></nowiki> and the standard HTML <nowiki><pre></nowiki> tag: the content will preformatted, and it will not be parsed, but shown as in the wikitext source. If you want preformatted but parsed text, use a space in the beginning of the line instead. For example, <nowiki><pre>This word is <b>bold</b>.</pre> This word is <b>bold</b>.</nowiki> will render as <pre>This word is <b>bold</b>.</pre> This word is <b>bold</b>. === Comments === <b>HTML comments in the wikitext (<nowiki><!-- ... --></nowiki>) will not appear in the HTML code at all.</b> === Headers === Headers (<nowiki><h1>...<h6></nowiki>) will be treated in a similar way as wikicode headers: <h6>sample header</h6> Note that it appears in the table of contents and has an accompanying edit link. There are some minor differences though: editing such a section won't prefill the edit summary, and the browser won't jump to the beginning of the section when saving the page. Thus, you should use the wikitext equivalents instead. == Exceptions == In some pages in the MediaWiki namespace (typically the short messages like button labels) HTML does not work, and e.g. &lt;span id=abc&gt; produces the HTML &amp;lt;span id=abc&amp;gt; rendered by the browser as &lt;span id=abc&gt;. Some others are interpreted as pure HTML (thus any tag can be used, but wikicode won't be transformed to HTML). User CSS and JS pages (see [[Help:User style]]) are interpreted as if inside a <nowiki><pre></nowiki> block. From MW 1.11 this also goes for sitewide CSS/JS; in earlier versions, you have to manually add <tt><nowiki>/*<pre>*/</nowiki></tt> to the beginning and <tt><nowiki>/*</pre>*/</nowiki></tt> to the end of those pages to avoid strange rendering. ==Validation== {{main|Help:Markup validation}} The MediaWiki software attempts to catch HTML errors, but it does not catch all of them. If you use HTML in wikitext, it is helpful to verify it with the [[W3C Markup Validation Service]]. == External links == * HTML 4.01 specification: [http://www.w3.org/TR/html401/index/elements.html elements] | [http://www.w3.org/TR/html401/index/attributes.html attributes] * For customizing the handling of HTML in MediaWiki, see the HTML and Tidy sections in [[mw:Manual:Configuration settings]] * Some extensions allow adding arbitrary HTML to a page, for example [[mw:Extension:AddHTML]], [[mw:Extension:SecureHTML]] and [[mw:Extension:Secure HTML]]; see [[mw:Manual:$wgRawHtml|$wgRawHtml]] for a more complete list * Within the MediaWiki codebase, these HTML checks happen in [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/Sanitizer.php includes/Sanitizer.php] 1510f004996036f2c940b6458ab8115612adf9c4 Hilfe:TOC 12 43 87 2010-08-11T12:52:11Z Satria 1 Die Seite wurde neu angelegt: „Diese Seite behandelt die Gliederung und Darstellung des '''Inhaltsverzeichnisses''' in Wikipedia-Artikeln, das standardmäßig ab der Verwendung von vier Übersc…“ wikitext text/x-wiki Diese Seite behandelt die Gliederung und Darstellung des '''Inhaltsverzeichnisses''' in Wikipedia-Artikeln, das standardmäßig ab der Verwendung von vier Überschriften auf einer Seite erscheint. == Gliederung == Ein Inhaltsverzeichnis dient dem Leser zur Orientierung und zum gezielten Springen in den Text, ohne ihn komplett lesen zu müssen. Folgende Empfehlungen gibt es zu Umfang und Bezeichnungen in einem Inhaltsverzeichnis: === Gliederungsebenen === Im Inhaltsverzeichnis werden alle Titel, d. h. die von je zwei oder mehr Gleichheitszeichen umgebenen Texte (<code><nowiki>==</nowiki>&nbsp;Überschrift&nbsp;==</code>), angezeigt und der Ebene entsprechend eingerückt. Über einen Mausklick im Inhaltsverzeichnis gelangt man zum entsprechenden Abschnitt. Eine Untergliederungsebene sollte nur angelegt werden, wenn sie mindestens aus zwei Unterabschnitten besteht, es sollte z.&nbsp;B. keinen Abschnitt 2.1 geben, ohne dass es auch einen Abschnitt 2.2 gibt. === Überschriften, die nicht im Inhaltsverzeichnis erscheinen sollen === Bei Überschriften, die nicht im Inhaltsverzeichnis erscheinen sollen, sind zwei Fälle zu unterscheiden, einerseits Wikipedia-interne Seiten und andererseits normale Artikeltexte („Artikelnamensraum“, siehe [[Hilfe:Namensräume]]). # '''In Wikipedia-internen Seiten wie Diskussionsseiten oder Hilfeseiten wie dieser''' ergibt sich diese Anforderung typischerweise, wenn eine Überschrift nur zu Layoutzwecken angezeigt werden soll, ohne ein neues Thema einzuleiten. Hierzu sind die {{[[Vorlage:Überschriftensimulation 1]]}} bis {{[[Vorlage:Überschriftensimulation 6]]}} geschaffen worden. Sie sollen in Artikeln nicht verwendet werden, weil sie nur das Design der [[WP:SKIN|Standardskin]] imitiert. # '''Im Artikelnamensraum''' ergibt sich diese Anforderung aus dem Umstand, dass ein Kapitel eine große Zahl langer oder komplizierter Unterüberschriften besitzt, die aber nicht so bedeutend sind, dass sie im Inhaltsverzeichnis erscheinen müssten. Auch einzelne Unterteilungen, die kein zweites Unterkapitel derselben Gliederungsebene erlauben (s. o.) erzeugen ein solches Problem. In der Regel sollten alle Gliederungspunkte gleichermaßen im Text wie im Inhaltsverzeichnis aufgeführt werden. Falls dies aus genannten Gründen nicht sinnvoll ist, bietet die Wikipedia derzeit keine empfohlene Lösung für diesen Fall. Im Laufe der Zeit haben sich folgende ''Notlösungen'' entwickelt, auf die im allgemeinen allerdings verzichtet werden sollte: #* Verwendung von Fettschreibung einer Pseudo-Überschrift als eigenem Absatz; die Syntax lautet <code><nowiki>'''Überschrift'''</nowiki></code> (mit Leerzeile darüber und darunter). #* Verwendung von [[Hilfe:Textgestaltung|Aufzählungen]], wobei die erste Zeile fett gesetzt wird. #* Verwendung von [[Hilfe:Textgestaltung|Definitionslisten]], die Syntax lautet <code>; ''Überschrift'' : ''Text''</code>. Definitionslisten dürfen auch nur als solche verwendet werden und das Semikolon nicht als Fettschreibungs-Ersatz missbraucht werden. Alle diese Notlösungen haben den Nachteil, dass die semantische Information der Gliederungsebene durch eine Layoutformatierung nur indirekt dargestellt wird. Außerdem erzeugen sie einen komplizierteren Wikicode, als es eigentlich sein müsste. Es gibt derzeit keine Diskussion darüber, wie dieses grundsätzliche Problem durch eine Erweiterung der Wikimedia-Software gelöst werden soll. === Kapitelbezeichnungen === In [[Wikipedia:Wie schreibe ich gute Artikel]], [[Hilfe:Formatvorlagen]] und [[Wikipedia:Formatierung]] ist indirekt beschrieben, welche Kapitelbezeichnungen gute Artikel verwenden sollten. Generell haben sich für die Kapitel am Ende eines Artikels folgende Kapitelbezeichnungen für die Verweise bewährt und sollten für ein einheitlicheres Auftreten von Wikipedia in folgender Reihenfolge verwendet werden: * [[Wikipedia:Assoziative Verweise|Siehe auch]] {optional. Dieses Kapitel und seine Bezeichnung sind umstritten, vgl. [[Hilfe Diskussion:Inhaltsverzeichnis#Neue Bezeichnung für "Siehe auch"|Diskussion]]} * [[Wikipedia:Literatur|Literatur]] * [[Wikipedia:Weblinks|Weblinks]] * [[Hilfe:Einzelnachweise|Einzelnachweise]] {wenn mit Fußnoten gearbeitet wird; Einsatz, Bezeichnung und Platzierung in Gliederung ist umstritten, vgl. [[Wikipedia:Meinungsbilder/Einordnung_des_Abschnittes_Einzelnachweise_im_Artikel|dieses Meinungsbild]] sowie allgemein [[Wikipedia:Belege|Belege]].} Von verschiedenen Seiten gibt es Bemühungen, eine weitergehende Standardisierung voranzutreiben und ggf. auch eine neue Gliederungsform einzuführen. Die Diskussion befindet sich noch am Anfang, so dass der Wikiautor sich weiterhin an den bisherigen gängigen Artikeln orientieren sollte, wie z.&nbsp;B. dem Artikel [[Baum]]. === Exkurs: Section-Edit === Neben jeder Überschrift erscheint automatisch ein „Bearbeiten“-Link, mit dem sich genau dieser Abschnitt ändern lässt. Mit der folgenden Zeichenfolge im Artikelcode lässt sich das für die gesamte Seite abschalten: <code><nowiki>__NOEDITSECTION__</nowiki></code> „Bearbeiten“-Link für einzelne Abschnitte abschalten: {{Hilfe:Textgestaltung/HTML-Hn-Header und MediaWiki}} == Darstellung == Die Darstellung eines '''Inhaltsverzeichnis''' lässt sich in Wikipedia an drei verschiedenen Stellen beeinflussen: Im Artikelcode, in den Benutzereinstellungen und für PowerUser auch per CSS-Einstellungen. === Optionen im Seitencode === Die ''Standardeinstellung von Wikipedia'' ist, dass ein Inhaltsverzeichnis bei mehr als drei Überschriften automatisch generiert wird. * <code><nowiki>__FORCETOC__</nowiki></code> oder <code><nowiki>__INHALTSVERZEICHNIS_ERZWINGEN__</nowiki></code> erzwingt ein Inhaltsverzeichnis, auch wenn weniger als vier Überschriften vorhanden sind. * <code><nowiki>__TOC__</nowiki></code> oder <code><nowiki>__INHALTSVERZEICHNIS__</nowiki></code> ermöglicht, dass das Inhaltsverzeichnis an einer anderen Stelle im Text als standardmäßig vor der ersten Überschrift angezeigt wird. * <code><nowiki>__NOTOC__</nowiki></code> oder <code><nowiki>__KEIN_INHALTSVERZEICHNIS__</nowiki></code> hingegen schaltet die Anzeige des Inhaltsverzeichnisses ab. * {{Vorlage|TOCright}} und {{Vorlage|TOCleft}} bewirken, dass das Inhaltsverzeichnis an dieser Stelle rechts bzw. links in den Text eingegliedert wird. Dadurch kann Platz gespart werden. Diese Vorlagen sollten nicht im Artikelnamensraum verwendet werden. * {{Vorlage|TOC}} ist eine Vorlage und ermöglicht die Anzeige eines horizontalen alphabetischen Inhaltsverzeichnisses, die sich auch als Navigationsleiste eignet. Bei besonders vielen, kurzen Überschriften eignet sich die vertikale Darstellung des automatischen Inhaltsverzeichnisses nicht. Für alphabetische Listen (im Format <code><nowiki>== A ==, == B == …</nowiki></code>) gibt es den [[Wikipedia:Textbausteine/Formatierungshilfen|MediaWiki-Textbaustein]], der das automatisch generierte Inhaltsverzeichnis abschaltet und stattdessen eine horizontale Navigationsleiste mit allen Buchstaben des Alphabets einfügt. Zu Varianten der Vorlage:TOC, und anderen Methoden, siehe [[:Kategorie:Vorlage:TOC]], und im Besonderen die Dokumentation zu [[Vorlage:TOC Artikel]] === Optionen in den Benutzereinstellungen === In den [[Hilfe:Einstellungen|Benutzereinstellungen]] kann eingestellt werden, dass Überschriften automatisch im Fließtext nummeriert werden. Außerdem lassen sich die Anzeige des Inhaltsverzeichnisses und der Bearbeiten-Links abschalten. === Optionen per CSS === Du kannst über [[Cascading Style Sheets|CSS]] das Inhaltsverzeichnis deinen Bedürfnissen anpassen. Gehe auf deine persönliche CSS-Datei (meist [[Spezial:mypage/monobook.css|monobook.css]]) und gib beispielsweise folgende Anweisungen ein: /* Inhaltsverzeichnis nie anzeigen */ table.toc {display:none;} /* Hintergrundfarbe des Inhaltsverzeichnisses */ table.toc {background-color:''FARBNAME, siehe [[Hilfe:Farben]]'';} /* Text „Inhaltsverzeichnis“ an der Spitze des Inhaltsverzeichnisses nicht anzeigen */ #toctitle {display:none;} /* Inhaltsverzeichnisnummern nicht anzeigen */ .tocnumber {display:none;} [[Help:TOC/en|Table of contents (Englisch)]] 85d17e1bac676928b769f393895b00b7cf7e559e Hilfe:HTML 12 44 90 2010-08-11T12:55:31Z Satria 1 Die Seite wurde neu angelegt: „[[Help:HTML/en|HTML (Englisch)]]“ wikitext text/x-wiki [[Help:HTML/en|HTML (Englisch)]] db050cfe808b6ad7f5ddf7a5a605fcee989ddf1b Hilfe:TOC/en 12 45 91 2010-08-11T12:57:35Z Satria 1 Die Seite wurde neu angelegt: „A page can and should be divided into '''sections''', using the section heading syntax. For each page with more than three section headings, a table of contents (…“ wikitext text/x-wiki A page can and should be divided into '''sections''', using the section heading syntax. For each page with more than three section headings, a table of contents (TOC) is automatically generated. This page attempts to explain the syntax of these elements. For information about how to name sections or how to use sections to structure articles, please read the [[Wikipedia:Guide to layout]]. ==Creation and numbering of sections== {{for|details on how to name sections, or about using them properly to structure articles, |Wikipedia:Guide to layout}} '''Sections''' are created by creating their headings, as below. <pre> ==Section== ===Subsection=== ====Sub-subsection==== </pre> Please ''do not'' use only one equals sign on a side ({{xt|<nowiki>=Heading=</nowiki>}}). This would cause a section heading to be as large as the page's name (title). Heading names of sections (including subsections) should be unique on a page. Using the same heading more than once on a page causes problems: * An [[Help:Link#Wikilinks|internal link (wikilink)]] to a section, in the form {{xt|<nowiki>[[Article name#Section heading]]</nowiki>}}, will only link to the first section on the page with that name, which may not be the intended target of the link. See also [[WP:Linking#Linking to sections of articles|Linking to sections of articles]]. * When a section with a duplicate name is edited, the edit history and summary will be ambiguous as to which section was edited. * When saving the page after a section edit, the editor's browser may navigate to the wrong section. ===Numbering=== For registered users who use the preference setting [[Help:Preferences#Misc_settings|Auto-number headings]], sections are numbered in the table of contents and at beginning of each section heading. ==Table of contents (TOC)== {{Shortcut|WP:TOC}} {{For|Wikipedia's contents|Portal:Contents}} For each page with more than three headings, a '''table of contents (TOC)''' is automatically generated from the section headings, unless: *(for a user) [[Help:preferences|preferences]] are set to turn it off *(for an article) the [[Help:Magic words|magic word]] <tt><nowiki>__NOTOC__</nowiki></tt> (with '''two underscores''' on either side of the word) is added to the article ===Positioning the TOC=== When either <tt><nowiki>__FORCETOC__</nowiki></tt> or <tt><nowiki>__TOC__</nowiki></tt> (with '''two underscores''' on either side of the word) is placed in the wikitext, a TOC is added even if the page has fewer than four headings. With <tt><nowiki>__FORCETOC__</nowiki></tt>, the TOC is placed before the first section heading. With <tt><nowiki>__TOC__</nowiki></tt>, it is placed at the same position where this code is placed. There may be some introductory text before the TOC, known as the "lead". Although usually a heading after the TOC is preferable, <tt><nowiki>__TOC__</nowiki></tt> can be used to avoid being forced to insert a meaningless heading just to position the TOC correctly, i.e., not too low. ====Floating the TOC==== The TOC can, in some instances, be floated either right or left using {{tl|TOC right}} or {{tl|TOC left}} when it is beneficial to the layout of the article, or when the default TOC gets in the way of other elements. Before changing the default TOC to a floated TOC, consider the following guidelines: # If an article will be adversely affected by the change, don't float the TOC. # If floating the TOC, the TOC should be placed after the lead section of the wiki markup for consistency. Users of [[screen reader]]s do not expect any text between the TOC and the first heading, and having no text above the TOC is confusing. See [[wikipedia:accessibility#Article structure]] # When floating a TOC, check whether the page layout will be harmed if the TOC is hidden by the user. # Long lists may create very long TOCs. The TOC should not be longer than necessary, whether it is floated or not. {{tl|TOC limit}} can be used to reduce the length of the TOC by hiding nested subsections, rather than a floating TOC. # The default TOC is placed before the first headline, but after any introductory text (unless changed by the page's editors). If the introductory summary is long enough that a typical user has to scroll down to see the top of the TOC, you may float the TOC so it appears closer to the top of the article. However, the floating TOC should in most cases follow at least the first paragraph of article text. # Floating a wide TOC will produce a narrow column of readable text for users with low resolutions. If the TOC's width exceeds 30% of the user's visible screen (about twice the size of the Wikipedia navigation bar to the left), then it is not suitable for floating. (Percentages assume a typical user setup.) If text is trapped between a floating TOC and an image, floating can be cancelled at a certain text point, see [[Wikipedia:Picture tutorial#Forcing a break|Forcing a break]]. # If the TOC is placed in the general vicinity of other floated images or boxes, it can be floated as long as the flowing text column does not become narrower than 30% of the average user's visible screen width. # A left-floated TOC may affect bulleted or numbered lists. The {{tl|TOC right}} template was proposed for deletion in early July 2005, but there was no consensus on the matter. The archive of the discussion and voting regarding this may be seen at [[Wikipedia:Templates for deletion/TOCright]]. The Manual of Style discussion can be found [[Wikipedia talk:Manual of Style/Archive 17|here]]. ===Limiting the depth of the TOC=== When an article or project page has a very large number of subsections, it may be appropriate to hide lower-level subsections from the TOC. You can specify a limit for the lowest-level section that should be displayed using {{tlp|TOC limit|2=limit=''n''}}, where ''n'' is the number of = signs that are used on each side of the lowest-level section header that should be displayed (e.g. 3 to show ===sections=== but hide ====sections====). The limit=''n'' parameter can also be given to {{tl|TOC left}} or {{tl|TOC right}} the same way. ===Linking to the TOC=== The TOC is automatically generated with the HTML id "toc". You can make a link to it with <nowiki>[[#toc]]</nowiki>: * Same page: ** wikicode: <nowiki>[[#toc|Contents]]</nowiki> ** link: [[#toc|Contents]] * Different page: ** wikicode: <nowiki>[[Help:Advanced editing#toc|Contents]]</nowiki> ** link: [[Help:Advanced editing#toc|Contents of Advanced Editing Help page]] 056b3f0ee892bce140eebbad8607868c10753d2a Mozilla Firefox 0 9 92 14 2010-08-11T12:59:27Z Satria 1 wikitext text/x-wiki Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei cert8.db korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ae5fbd3c5e104dc04239c4829af380c34ee24f40 100 92 2010-10-08T00:14:23Z Satria 1 wikitext text/x-wiki ==Fehler bei Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei cert8.db korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Virenscan bei Download abschalten== In der Adresszeile von Firefox muss <pre>about:config</pre> eingegeben werden. Hier muss der Wert <pre>browser.download.manager.scanWhenDone auf false</pre> gesetzt werden. 6d5b8bf8e5c054187c2065ab694d6c730764e1a5 101 100 2010-10-08T00:14:40Z Satria 1 wikitext text/x-wiki ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei cert8.db korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Virenscan bei Download abschalten== In der Adresszeile von Firefox muss <pre>about:config</pre> eingegeben werden. Hier muss der Wert <pre>browser.download.manager.scanWhenDone auf false</pre> gesetzt werden. e22d1de123432eff8b53e03b5eb6f50f4590d6bb 103 101 2010-10-11T20:59:47Z Satria 1 wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. e6dc3ac0d286f20e289c49383fb5e5a4764074ba Garret Turbolader 0 46 94 2010-09-16T14:22:54Z Satria 1 Die Seite wurde neu angelegt: „Die Modellbezeichnungen bei Garret und die üblichen Namen, die den Turbos gegeben werden, laufen so ein bisschen auseinander. Darum halte ich ein paar Erkenntnis…“ wikitext text/x-wiki Die Modellbezeichnungen bei Garret und die üblichen Namen, die den Turbos gegeben werden, laufen so ein bisschen auseinander. Darum halte ich ein paar Erkenntnisse mal hier fest:<br> <br> ==Aufschlüsselung der Modellbezeichnung== Alle Garret Turbolader beginnen mit einem "GT", gefolgt von 4 Ziffern und bis zu 2 Buchstaben (GTxxyyaa).<br> <br> Die 2-stellige Nummer nach dem "GT", das xx gruppiert die Turbos nach dem Durchmesser des "Inducers" des Turbinenrades. Der "Inducer" ist der Teil des Turbinenrades, auf den die Luft (die Abgase) zuerst treffen, also der größere (von außen nicht sichtbre) Teil. Alle GT25 Modelle haben einen Turbinen-Inducer von 53,0 mm. Alle GT28 Modelle haben einen Turbinen-Inducer von 53,8 mm.<br> Die erste Ziffer, beim GT25 also die "2" gruppiert alle diese Turbos zusätzlich nach dem Einlass-Flansch (Anschluss zum Abgaskrümmer). Theoretisch kann man rein baulich alle GT2... Turbos untereinander austauschen, ohne den Krümmer zu verändern. <br> Die 2-stellige Nummer danach, das yy gibt Aufschluss darüber, wie groß der "Exducer" des Verdichtarrades in mm ist. Der "Exducer" ist der Teil des Verdichterrades, an dem die Luft (Frischluft) den Verdichter verlässt, also auch hier der größere (von außen nicht sichtbare) Teil. Wird der Durchmesser größer als 100 mm, lässt Garret die 1 in der Modellbezeichnung wegfallen.<br> <br> Die angehängten Buchstaben, das aa, können ein R oder ein RS sein. R markiert hierbei einen kugelgelagerten Turbo, und das S spezielle, von der Baureihe abweichende Merkmale.<br> <br> ==Alltagsnamen vs. Modellbezeichnungen== Was im Allgemeinen als "T25" bezeichnet wird, verbaut im 200SX S13 (CA18DET), trägt die genaue Bezeichnung: GT2554. Im 200SX S14 oder S14a (so weit ich weiß), wurde am Werk ein Turbo verbaut, im Allgemeinen als "T28" bezeichnet, der korrekterweise aber die Modellbezeichnung "GT2560" trägt. Er hat einen größeren Verdichter (60), aber die Turbine ist absolut identisch mit der des T25, darum das "GT25" auch beim T28. 63b682564d46550fccf28e3fed09705919f1cda1 95 94 2010-09-16T14:23:21Z Satria 1 /* Aufschlüsselung der Modellbezeichnung */ wikitext text/x-wiki Die Modellbezeichnungen bei Garret und die üblichen Namen, die den Turbos gegeben werden, laufen so ein bisschen auseinander. Darum halte ich ein paar Erkenntnisse mal hier fest:<br> <br> ==Aufschlüsselung der Modellbezeichnung== Alle Garret Turbolader beginnen mit einem "GT", gefolgt von 4 Ziffern und bis zu 2 Buchstaben (GTxxyyaa).<br> <br> Die 2-stellige Nummer nach dem "GT", das xx gruppiert die Turbos nach dem Durchmesser des "Inducers" des Turbinenrades. Der "Inducer" ist der Teil des Turbinenrades, auf den die Luft (die Abgase) zuerst treffen, also der größere (von außen nicht sichtbre) Teil. Alle GT25 Modelle haben einen Turbinen-Inducer von 53,0 mm. Alle GT28 Modelle haben einen Turbinen-Inducer von 53,8 mm.<br> Die erste Ziffer, beim GT25 also die "2" gruppiert alle diese Turbos zusätzlich nach dem Einlass-Flansch (Anschluss zum Abgaskrümmer). Theoretisch kann man rein baulich alle GT2... Turbos untereinander austauschen, ohne den Krümmer zu verändern.<br> <br> Die 2-stellige Nummer danach, das yy gibt Aufschluss darüber, wie groß der "Exducer" des Verdichtarrades in mm ist. Der "Exducer" ist der Teil des Verdichterrades, an dem die Luft (Frischluft) den Verdichter verlässt, also auch hier der größere (von außen nicht sichtbare) Teil. Wird der Durchmesser größer als 100 mm, lässt Garret die 1 in der Modellbezeichnung wegfallen.<br> <br> Die angehängten Buchstaben, das aa, können ein R oder ein RS sein. R markiert hierbei einen kugelgelagerten Turbo, und das S spezielle, von der Baureihe abweichende Merkmale.<br> <br> ==Alltagsnamen vs. Modellbezeichnungen== Was im Allgemeinen als "T25" bezeichnet wird, verbaut im 200SX S13 (CA18DET), trägt die genaue Bezeichnung: GT2554. Im 200SX S14 oder S14a (so weit ich weiß), wurde am Werk ein Turbo verbaut, im Allgemeinen als "T28" bezeichnet, der korrekterweise aber die Modellbezeichnung "GT2560" trägt. Er hat einen größeren Verdichter (60), aber die Turbine ist absolut identisch mit der des T25, darum das "GT25" auch beim T28. e4aa74d412c81013742fa8967f3d83ab586e9f68 Meine Fragen 0 27 96 35 2010-09-17T16:56:06Z Satria 1 wikitext text/x-wiki ;Sahara:Warum ist eine Wüste eine Wüste?<br>Was befindet sich unter dem Sand? ;Tunnel durch den Erdmittelpunkt:Der Mittelpunkt der Erde ist ja auch das Gravitationszentrum. Alles wird in Richtung dieses Zentrums angezogen. Gäbe es jetzt einen Tunnel von der einen Seite der Erde durch das Zentrum bis zum anderen Ende, würde man dann in diesem Tunnel hin und her pendeln bis zum Stillstand?<br>Man kann ja dann nicht mehr in Richtung des Zentrums fallen, weil die gesamte Masse, die das Gravitationsfeld erzeugt um einen herum wäre :) Zieht es den Körper dann auch (spürbar) auseinander? Gäbe es in diesem Tunnel dann Luft? Abgesehen davon, dass man die Lava irgendwie zurückhalten müsste :-P 583c469a1c229c6d6f79aa7b0db5bf4e034f5fbd Gliese 581 0 47 99 2010-09-30T19:19:27Z Satria 1 Die Seite wurde neu angelegt: „... oder auch HP74995 nach dem Hipparcos-Katalog. Das ist ein 20 Lichtjahre entfernter Stern, dessen 7. Planet (Gliese 581 f) von den Forschern als ein Planet ein…“ wikitext text/x-wiki ... oder auch HP74995 nach dem Hipparcos-Katalog. Das ist ein 20 Lichtjahre entfernter Stern, dessen 7. Planet (Gliese 581 f) von den Forschern als ein Planet eingestuft wird, der möglicherweise Leben ermöglicht.<br> <br> Seine Koordinaten in Rektaszension und Deklination sind:<br> 15h 19m 26,83s -07° 43′ 20,2″ ==Quellen:== [[http://de.wikipedia.org/wiki/Gliese_581 Gliese 581 auf Wikipedia]]<br> [[http://de.wikipedia.org/wiki/Gliese_581_g Gliese 581 f auf Wikipedia]]<br> 2de3e2ebc505252ecd0961a484fa184dede8397a Windows .local Dateien 0 48 105 2010-10-13T14:15:25Z Satria 1 Die Seite wurde neu angelegt: „Den meisten wird es nie aufgefallen sein: Windows (zumindest 2000 und XP, möglicherweis auch höher) prüft beim Starten einer .exe Datei stillschweigend die Exi…“ wikitext text/x-wiki Den meisten wird es nie aufgefallen sein: Windows (zumindest 2000 und XP, möglicherweis auch höher) prüft beim Starten einer .exe Datei stillschweigend die Existenz einer Datei, die genauso heißt, wie die EXE-Datei, aber zusätzlich auf .local endet. Beispielsweise wird bei Notepad.exe nach Notepad.exe.local gesucht.<br> <br> Ist diese Datei vorhanden (ihr Inhalt spielt keine Rolle), veranlasst dies Windows dazu, einzubindende DLLs direkt aus dem Verzeichnis der EXE-Datei zu laden, anstatt in den DLL Verzeichnissen danach zu suchen. ==Quellen== [http://msdn.microsoft.com/en-us/library/ms682600.aspx Microsoft] 4fac6226dcb17e882648f6b8ab9c3529fe6bfc00 Autobatterie 0 49 107 2010-11-16T12:16:34Z Satria 1 Die Seite wurde neu angelegt: „Auch "Starterbatterie" genannt, weil sie nämlich NUR zum Anlassen (Starten) des Autos benötigt wird.<br> Läuft der Motor, übernimmt die Lichtmaschine als Stro…“ wikitext text/x-wiki Auch "Starterbatterie" genannt, weil sie nämlich NUR zum Anlassen (Starten) des Autos benötigt wird.<br> Läuft der Motor, übernimmt die Lichtmaschine als Stromgenerator die Versorgung des kompletten Kfz mit Strom und lädt noch dazu die Batterie wieder auf. Bei Autobatterien gibt es neben verschiedenen Pol-Formen (rund, flach) auch noch unterschiedliche Polanordnungen: Polanordnung 0: <pre> ------------- | | | | | - + | ------------- </pre> Polanordnung 1: <pre> ------------- | | | | | + - | ------------- </pre> Etwas exotischer: Polanordnung 3: <pre> ------------- | - | | | | + | ------------- </pre> Polanordnung 4: <pre> ------------- | - | | | | + | ------------- </pre> Die Polanordnung kann entscheidend darüber sein, wie gut sich eine Batterie im Kfz verbauen lässt. In den meisten Fällen erlauben enge Bauweisen und knapp bemessene Kabel nur eine bestimmte Polanordnung im jeweiligen Kfz. e28a6f9714ca924110f25958770064c89547c7d4 108 107 2010-11-16T12:18:03Z Satria 1 wikitext text/x-wiki Auch "Starterbatterie" genannt, weil sie nämlich NUR zum Anlassen (Starten) des Autos benötigt wird.<br> Läuft der Motor, übernimmt die Lichtmaschine als Stromgenerator die Versorgung des kompletten Kfz mit Strom und lädt noch dazu die Batterie wieder auf. Bei Autobatterien gibt es neben verschiedenen Pol-Formen (rund, flach) auch noch unterschiedliche Polanordnungen: Polanordnung 0: <pre> ------------- | | | | | - + | ------------- </pre> Polanordnung 1: <pre> ------------- | | | | | + - | ------------- </pre> Etwas exotischer: Polanordnung 3: <pre> ------------- | - | | | | + | ------------- </pre> Polanordnung 4: <pre> ------------- | - | | | | + | ------------- </pre> Die Polanordnung kann entscheidend darüber sein, wie gut sich eine Batterie im Kfz verbauen lässt. In den meisten Fällen erlauben enge Bauweisen und knapp bemessene Kabel nur eine bestimmte Polanordnung im jeweiligen Kfz. 381270264b0d9046751c75711916526afc18ae9e 109 108 2010-11-16T12:18:34Z Satria 1 wikitext text/x-wiki Auch "Starterbatterie" genannt, weil sie nämlich NUR zum Anlassen (Starten) des Autos benötigt wird.<br> Läuft der Motor, übernimmt die Lichtmaschine als Stromgenerator die Versorgung des kompletten Kfz mit Strom und lädt noch dazu die Batterie wieder auf. Bei Autobatterien gibt es neben verschiedenen Pol-Formen (rund, flach) auch noch unterschiedliche Polanordnungen: Polanordnung 0: <pre> ------------- | | | | | - + | ------------- </pre> Polanordnung 1: <pre> ------------- | | | | | + - | ------------- </pre> Etwas exotischer: Polanordnung 3: <pre> ------------- | - | | | | + | ------------- </pre> Polanordnung 4: <pre> ------------- | - | | | | + | ------------- </pre> Die Polanordnung kann entscheidend darüber sein, wie gut sich eine Batterie im Kfz verbauen lässt. In den meisten Fällen erlauben enge Bauweisen und knapp bemessene Kabel nur eine bestimmte Polanordnung im jeweiligen Kfz. 591e8d3f27d3ecdfb381202ace1f10678f33a432 Windows Autostart Orte 0 50 111 2010-11-29T15:30:33Z Satria 1 Die Seite wurde neu angelegt: „Bei Windows (2000 / XP) gibt es verschiedene Orte, an denen man Programme automatisch beim Starten ausführen lassen kann. Hier liste ich auch die Möglichkeiten …“ wikitext text/x-wiki Bei Windows (2000 / XP) gibt es verschiedene Orte, an denen man Programme automatisch beim Starten ausführen lassen kann. Hier liste ich auch die Möglichkeiten auf, wie man Programme unbemerkt zusammen mit anderen Programmen (die möglicherweise automatisch gesatrtet werden) ausführt. Diese Techniken sind beliebt bei Viren und Trojanern! Daher kann es nicht schaden, sie zu kennen, wenn man einen solchen ohne Antivirenprogramme bekämpfen will oder muss.<br> Das Programm, das hier als Beispiel gestartet werden soll, sei "Programm.exe". == Startmenü -> Autostart == Der offensichtlichste Ort. Programme oder Verknüpfungen können hier abgelegt werden und werden nach dem Anmelden ausgeführt.<br> Welcher Ordner tatsächlich die Rolle des automatisch ausführenden Ordners einnimmt, kann in der Registry unter <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup</pre> eingestellt / verstellt werden. Hier ist normalerweise so etwas hinterlegt wie: <pre>C:\Dokumente und Einstellungen\Benutzer\Startmenü\Programme\Autostart</pre> == Win.ini == Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [Windows] load=Programm.exe run=Programm.exe </pre> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == System.ini == Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [boot] shell=explorer.exe Programm.exe </pre> Ich vermute mal, die explorer.exe muss angegeben werden (statt <u>nur</u> Programm.exe), weil sonst der normale Desktop nicht gestartet würde.<br> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! ==Registry== ==Geplante Tasks== 44305402bcf2fb9e0ce1ed303b4fed6df7106068 112 111 2010-11-29T16:12:20Z Satria 1 wikitext text/x-wiki Bei Windows (2000 / XP) gibt es verschiedene Orte, an denen man Programme automatisch beim Starten ausführen lassen kann. Hier liste ich auch die Möglichkeiten auf, wie man Programme unbemerkt zusammen mit anderen Programmen (die möglicherweise automatisch gesatrtet werden) ausführt. Diese Techniken sind beliebt bei Viren und Trojanern! Daher kann es nicht schaden, sie zu kennen, wenn man einen solchen ohne Antivirenprogramme bekämpfen will oder muss.<br> Das Programm, das hier als Beispiel gestartet werden soll, sei "Programm.exe". == Startmenü -> Autostart == Der offensichtlichste Ort. Programme oder Verknüpfungen können hier abgelegt werden und werden nach dem Anmelden ausgeführt.<br> Welcher Ordner tatsächlich die Rolle des automatisch ausführenden Ordners einnimmt, kann in der Registry unter <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup</pre> eingestellt / verstellt werden. Hier ist normalerweise so etwas hinterlegt wie: <pre>C:\Dokumente und Einstellungen\Benutzer\Startmenü\Programme\Autostart</pre> == Win.ini == Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [Windows] load=Programm.exe run=Programm.exe </pre> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == System.ini == Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [boot] shell=explorer.exe Programm.exe </pre> Ich vermute mal, die explorer.exe muss angegeben werden (statt <u>nur</u> Programm.exe), weil sonst der normale Desktop nicht gestartet würde.<br> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == Winstart.bat == Ähnlich der alten Autoexec.bat.<br> Keine weiteren Informationen vorhanden. == Wininit.ini == Inhalte sollen einmalig ausgeführt und die Datei anschließend gelöscht werden.<br> Keine weiteren Informationen vorhanden. == Registry == Folge Pfade in der Windows-Registrierung enthalten auch Einträge für den automatischen Start von Programmen: <pre> [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln sind nur im aktuellen Benutzerprofil gespeichert, und werden auch nur ausgeführt, wenn dieser Benutzer sich anmeldet. <pre> [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln werden beim Anmelden von jedem Benutzer ausgeführt. == Geplante Tasks == Auch hier kann es Einträge geben, bei denen eingestellt ist, das jeweilige Programm "Beim Systemstart" oder "Bei der Anmeldung" zu starten. 5a2295b143e781b288d6f7225a3befbcc8071030 113 112 2010-11-29T16:14:42Z Satria 1 wikitext text/x-wiki Bei Windows (2000 / XP) gibt es verschiedene Orte, an denen man Programme automatisch beim Starten ausführen lassen kann. Hier liste ich auch die Möglichkeiten auf, wie man Programme unbemerkt zusammen mit anderen Programmen (die möglicherweise automatisch gesatrtet werden) ausführt. Diese Techniken sind beliebt bei Viren und Trojanern! Daher kann es nicht schaden, sie zu kennen, wenn man einen solchen ohne Antivirenprogramme bekämpfen will oder muss.<br> Das Programm, das hier als Beispiel gestartet werden soll, sei "Programm.exe". == Startmenü -> Autostart == Der offensichtlichste Ort. Programme oder Verknüpfungen können hier abgelegt werden und werden nach dem Anmelden ausgeführt.<br> Welcher Ordner tatsächlich die Rolle des automatisch ausführenden Ordners einnimmt, kann in der Registry unter <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup</pre> eingestellt / verstellt werden. Hier ist normalerweise so etwas hinterlegt wie: <pre>C:\Dokumente und Einstellungen\Benutzer\Startmenü\Programme\Autostart</pre> == Win.ini == Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [Windows] load=Programm.exe run=Programm.exe </pre> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == System.ini == Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [boot] shell=explorer.exe Programm.exe </pre> Ich vermute mal, die explorer.exe muss angegeben werden (statt <u>nur</u> Programm.exe), weil sonst der normale Desktop nicht gestartet würde.<br> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == Winstart.bat == Ähnlich der alten Autoexec.bat.<br> Keine weiteren Informationen vorhanden. == Wininit.ini == Inhalte sollen einmalig ausgeführt und die Datei anschließend gelöscht werden.<br> Keine weiteren Informationen vorhanden. == Registry == Folge Pfade in der Windows-Registrierung enthalten auch Einträge für den automatischen Start von Programmen: <pre> [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln sind nur im aktuellen Benutzerprofil gespeichert, und werden auch nur ausgeführt, wenn dieser Benutzer sich anmeldet. <pre> [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln werden beim Anmelden von jedem Benutzer ausgeführt. == Geplante Tasks == Auch hier kann es Einträge geben, bei denen eingestellt ist, das jeweilige Programm "Beim Systemstart" oder "Bei der Anmeldung" zu starten. == Quellen == http://www.gaijin.at/mantrojan.php dbc9d81647a472da6c67cfc6c807aa9a53ccc5c1 FFmpeg 0 51 116 2010-12-01T11:32:30Z Satria 1 Die Seite wurde neu angelegt: „[http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den versc…“ wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. Aber ist auch das beste tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die den Namen <u>Frame %03d.jpg</u> trägt. Das erlaubt die Windows-Dateinamenkonvention zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw. ==Quellen== ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ 78903eccca12850965a854dd559cb9ffe4a41acd 117 116 2010-12-01T11:52:38Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. Aber ist auch das beste tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw. Allerdings habe ich festgestellt, dass der Dateiname mit einem Buchstaben beginnen <b>muss</b>! Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die den Namen <u>Frame %03d.jpg</u> trägt. Das erlaubt die Windows-Dateinamenkonvention zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. ==Quellen== ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ 65504978f4c64a3fabb305d7e3bad7d98269f5c9 118 117 2010-12-01T12:15:37Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. Aber ist auch das beste tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw. Allerdings habe ich festgestellt, dass der Dateiname mit einem Buchstaben oder aber der Nummerierung beginnen <b>muss</b>! Zwei weitere Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die den Namen <u>Frame %03d.jpg</u> trägt. Das erlaubt die Windows-Dateinamenkonvention zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. ==Quellen== ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ cfcda06a18473a5d1fe57cdfd7fd2760a102f7a5 119 118 2010-12-01T12:32:40Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. Aber ist auch das beste tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.<br> Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die den Namen <u>Frame %03d.jpg</u> trägt. Das erlaubt die Windows-Dateinamenkonvention zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. ==Quellen== ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ 553efa08456d1252cbd950691add3820e9ecdc88 120 119 2010-12-01T12:56:15Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. Aber ist auch das beste tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.<br> Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die einen Namen wie <u>Frame %03d.jpg</u> (passend zu den bild-Dateien) trägt. Das erlaubt die Windows-Dateinamenkonvention zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. ==Quellen== ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ 875a23b26c5f8f7efb3f7d02196db1bc58035843 121 120 2010-12-01T12:57:09Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. Aber ist auch das beste tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.<br> Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die einen Namen wie <u>Frame %03d.jpg</u> (passend zu den bild-Dateien) trägt. Die Windows-Dateinamenkonvention erlaubt das zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. ==Quellen== ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ 4ed9600af7a261be68ed4cd2b8dde8f80feef79b Htaccess 0 52 124 2010-12-07T03:02:20Z Satria 1 Die Seite wurde neu angelegt: „==Verzsichnissicherheit auf webservern== Die Datei ".htaccess" in einem Verzeichnis auf einem webserver dient dazu, den Zugriff auf Inhalte in diesem Verzeichnis …“ wikitext text/x-wiki ==Verzsichnissicherheit auf webservern== Die Datei ".htaccess" in einem Verzeichnis auf einem webserver dient dazu, den Zugriff auf Inhalte in diesem Verzeichnis einzuschränken. Besucher, die Inhalte aus diesem Verzeichnis anfordern, werden aufgefordert, einen gültigen Benutzernamen und das Passwort einzugeben. Stimmt die Benutzer/Passwort Kombination nicht mit dem Inhalt der .htaccess Datei überein, wird der Zugriff verweigert und eine Fehlerseite angezeigt. ===.htusers=== Es kann <u>eine</u> Datei ".htusers" im Stammverzeichnis des webservers definiert werden, die alle vorkommenden Benutzer und Passwörter enthält. Dies vereinfacht die erstellung der einzelnen .htaccess Dateien. Inhalt ".htusers": <pre> Benutzer1:<Password, MD5 Verschlüsselt> Benutzer2:<Passwort, MD5 Verschlüsselt> ... </pre> Zum Verschlüsseln der Passwörter kann die Datei [http://www.pcwelt.de/downloads/HTPASSWD-EXE-1324152.html htpasswd.exe] verwendet werden (die sich auch im "bin" Verzeichnis des Apache webservers wiederfindet). Alternativ kann man Passwörter online verschlüsseln, z.B. auf [https://www.phpbb.de/support/doku/htpasswd.php .htpasswd-Generator]. ===.htaccess=== Der Inhalt der .htaccess sieht in etwa so aus: <pre> AuthType Basic AuthName "Titel" AuthUserFile /htmlroot/.htusers Require user Benutzer1 </pre> Sie sagt aus, dass für den Zugriff auf Objekte in ihrem Verzeichnis der Benutzer "Benutzer1" erforderlich ist, und dessen Login-Daten in der Datei "/htmlroot/.htusers" zu finden sind. Der Dialog, der dem Benutzer angezeigt wird, trägt den Titel "Titel". 473f8831c327cbc360d0c2648f73d8795edd7a5d Facebook 0 53 126 2010-12-07T15:06:36Z Satria 1 Die Seite wurde neu angelegt: „==Chat-codes / Smilies== <table> <tr><td>*Text*</td><td><b>Text</b></td></tr> <tr><td>_Text_</td><td><u>Text</u></td></tr> <tr><td>*_Text_*</td><td><b><u>Text</u>…“ wikitext text/x-wiki ==Chat-codes / Smilies== <table> <tr><td>*Text*</td><td><b>Text</b></td></tr> <tr><td>_Text_</td><td><u>Text</u></td></tr> <tr><td>*_Text_*</td><td><b><u>Text</u></b></td></tr> <tr><td>[[Datei:FB_Ursmilie.png]]</td><td>:)</td></tr> <tr><td>[[Datei:FB_Traurig.png]]</td><td>:(</td></tr> <tr><td>[[Datei:FB_ZungeRaus.png]]</td><td>:P</td></tr> <tr><td>[[Datei:FB_Lachen.png]]</td><td>:D</td></tr> <tr><td>[[Datei:FB_Angst.png]]</td><td>:O</td></tr> <tr><td>[[Datei:FB_Zwinkern.png]]</td><td>;)</td></tr> <tr><td>[[Datei:FB_Cool1.png]]</td><td>8)</td></tr> <tr><td>[[Datei:FB_Cool2.png]]</td><td>8|</td></tr> <tr><td>[[Datei:FB_Sauer.png]]</td><td>>:(</td></tr> <tr><td>[[Datei:FB_Ratlos.png]]</td><td>:\</td></tr> <tr><td>[[Datei:FB_Weint.png]]</td><td>:'(</td></tr> <tr><td>[[Datei:FB_Teufel.png]]</td><td>3:)</td></tr> <tr><td>[[Datei:FB_Engel.png]]</td><td>O:)</td></tr> <tr><td>[[Datei:FB_Kuss.png]]</td><td>:-*</td></tr> <tr><td>[[Datei:FB_Herz.png]]</td><td><3</td></tr> <tr><td>[[Datei:FB_Herz.png]]</td><td>^-^</td></tr> <tr><td>[[Datei:FB_Froh.png]]</td><td>-_-</td></tr> <tr><td>[[Datei:FB_Verwirrt.png]]</td><td>O.o</td></tr> <tr><td>[[Datei:FB_Schadenfroh.png]]</td><td>>:o</td></tr> <tr><td>[[Datei:FB_Packman.png]]</td><td>:v</td></tr> <tr><td>[[Datei:FB_Bart.png]]</td><td>:3</td></tr> <tr><td>[[Datei:FB_Roboter.png]]</td><td>:|]</td></tr> <tr><td>[[Datei:FB_Putnam.png]]</td><td>:putnam:</td></tr> <tr><td>[[Datei:FB_Pinguin.jpg]]</td><td><(")</td></tr> <tr><td>[[Datei:FB_Hai.jpg]]</td><td>(^^^)</td></tr> </table> 37ccc331b0cd558535b85204e18afddb59d74016 127 126 2010-12-07T15:11:49Z Satria 1 wikitext text/x-wiki ==Chat-codes / Smilies== <table> <tr><td>*Text*</td><td><b>Text</b></td></tr> <tr><td>_Text_</td><td><u>Text</u></td></tr> <tr><td>*_Text_*</td><td><b><u>Text</u></b></td></tr> <tr><td>[[Datei:FB_Ursmilie.png]]</td><td>:)</td></tr> <tr><td>[[Datei:FB_Traurig.png]]</td><td>:(</td></tr> <tr><td>[[Datei:FB_ZungeRaus.png]]</td><td>:P</td></tr> <tr><td>[[Datei:FB_Lachen.png]]</td><td>:D</td></tr> <tr><td>[[Datei:FB_Angst.png]]</td><td>:O</td></tr> <tr><td>[[Datei:FB_Zwinkern.png]]</td><td>;)</td></tr> <tr><td>[[Datei:FB_Cool1.png]]</td><td>8)</td></tr> <tr><td>[[Datei:FB_Cool2.png]]</td><td>8|</td></tr> <tr><td>[[Datei:FB_Sauer.png]]</td><td>>:(</td></tr> <tr><td>[[Datei:FB_Ratlos.png]]</td><td>:\</td></tr> <tr><td>[[Datei:FB_Weint.png]]</td><td>:'(</td></tr> <tr><td>[[Datei:FB_Teufel.png]]</td><td>3:)</td></tr> <tr><td>[[Datei:FB_Engel.png]]</td><td>O:)</td></tr> <tr><td>[[Datei:FB_Kuss.png]]</td><td>:-*</td></tr> <tr><td>[[Datei:FB_Herz.png]]</td><td><3</td></tr> <tr><td>[[Datei:FB_Herz.png]]</td><td>^-^</td></tr> <tr><td>[[Datei:FB_Froh.png]]</td><td>-_-</td></tr> <tr><td>[[Datei:FB_Verwirrt.png]]</td><td>O.o</td></tr> <tr><td>[[Datei:FB_Schadenfroh.png]]</td><td>>:o</td></tr> <tr><td>[[Datei:FB_Packman.png]]</td><td>:v</td></tr> <tr><td>[[Datei:FB_Bart.png]]</td><td>:3</td></tr> <tr><td>[[Datei:FB_Roboter.gif]]</td><td>:|]</td></tr> <tr><td>[[Datei:FB_Putnam.gif]]</td><td>:putnam:</td></tr> <tr><td>[[Datei:FB_Pinguin.gif]]</td><td><(")</td></tr> <tr><td>[[Datei:FB_Hai.gif]]</td><td>(^^^)</td></tr> </table> 5cc13e74f584219c04590a3cde45d8a980fa7692 131 127 2010-12-07T15:14:12Z Satria 1 wikitext text/x-wiki ==Chat-codes / Smilies== <table> <tr><td>*Text*</td><td><b>Text</b></td></tr> <tr><td>_Text_</td><td><u>Text</u></td></tr> <tr><td>*_Text_*</td><td><b><u>Text</u></b></td></tr> <tr><td>[[Datei:FB_Ursmilie.png]]</td><td>:)</td></tr> <tr><td>[[Datei:FB_Traurig.png]]</td><td>:(</td></tr> <tr><td>[[Datei:FB_Zunge.png]]</td><td>:P</td></tr> <tr><td>[[Datei:FB_Lachen.png]]</td><td>:D</td></tr> <tr><td>[[Datei:FB_Angst.png]]</td><td>:O</td></tr> <tr><td>[[Datei:FB_Zwinkern.png]]</td><td>;)</td></tr> <tr><td>[[Datei:FB_Cool1.png]]</td><td>8)</td></tr> <tr><td>[[Datei:FB_Cool2.png]]</td><td>8|</td></tr> <tr><td>[[Datei:FB_Sauer.png]]</td><td>>:(</td></tr> <tr><td>[[Datei:FB_Ratlos.png]]</td><td>:\</td></tr> <tr><td>[[Datei:FB_Weint.png]]</td><td>:'(</td></tr> <tr><td>[[Datei:FB_Teufel.png]]</td><td>3:)</td></tr> <tr><td>[[Datei:FB_Engel.png]]</td><td>O:)</td></tr> <tr><td>[[Datei:FB_Kuss.png]]</td><td>:-*</td></tr> <tr><td>[[Datei:FB_Herz.png]]</td><td><3</td></tr> <tr><td>[[Datei:FB_Herz.png]]</td><td>^-^</td></tr> <tr><td>[[Datei:FB_Froh.png]]</td><td>-_-</td></tr> <tr><td>[[Datei:FB_Verwirrt.png]]</td><td>O.o</td></tr> <tr><td>[[Datei:FB_Schadenfroh.png]]</td><td>>:o</td></tr> <tr><td>[[Datei:FB_Packman.png]]</td><td>:v</td></tr> <tr><td>[[Datei:FB_Bart.png]]</td><td>:3</td></tr> <tr><td>[[Datei:FB_Roboter.gif]]</td><td>:|]</td></tr> <tr><td>[[Datei:FB_Putnam.gif]]</td><td>:putnam:</td></tr> <tr><td>[[Datei:FB_Pinguin.gif]]</td><td><(")</td></tr> <tr><td>[[Datei:FB_Hai.gif]]</td><td>(^^^)</td></tr> </table> d556b899af1e6bd6abdfb27233494d10a43a7f1c 154 131 2010-12-07T15:23:04Z Satria 1 wikitext text/x-wiki ==Chat-codes / Smilies== <table> <tr><td>*Text*</td><td><b>Text</b></td></tr> <tr><td>_Text_</td><td><u>Text</u></td></tr> <tr><td>*_Text_*</td><td><b><u>Text</u></b></td></tr> <tr><td>[[Datei:FB_Ursmilie.png]]</td><td>:)</td></tr> <tr><td>[[Datei:FB_Traurig.png]]</td><td>:(</td></tr> <tr><td>[[Datei:FB_Zunge.png]]</td><td>:P</td></tr> <tr><td>[[Datei:FB_Lachen.png]]</td><td>:D</td></tr> <tr><td>[[Datei:FB_Angst.png]]</td><td>:O</td></tr> <tr><td>[[Datei:FB_Zwinkern.png]]</td><td>;)</td></tr> <tr><td>[[Datei:FB_Cool1.png]]</td><td>8)</td></tr> <tr><td>[[Datei:FB_Cool2.png]]</td><td>8|</td></tr> <tr><td>[[Datei:FB_Sauer.png]]</td><td>>:(</td></tr> <tr><td>[[Datei:FB_Ratlos.png]]</td><td>:\</td></tr> <tr><td>[[Datei:FB_Weint.png]]</td><td>:'(</td></tr> <tr><td>[[Datei:FB_Teufel.png]]</td><td>3:)</td></tr> <tr><td>[[Datei:FB_Engel.png]]</td><td>O:)</td></tr> <tr><td>[[Datei:FB_Kuss.png]]</td><td>:-*</td></tr> <tr><td>[[Datei:FB_Herz.png]]</td><td><3</td></tr> <tr><td>[[Datei:FB_Froh.png]]</td><td>^-^</td></tr> <tr><td>[[Datei:FB_Zufrieden.png]]</td><td>-_-</td></tr> <tr><td>[[Datei:FB_Verwirrt.png]]</td><td>O.o</td></tr> <tr><td>[[Datei:FB_Schadenfroh.png]]</td><td>>:o</td></tr> <tr><td>[[Datei:FB_Packman.png]]</td><td>:v</td></tr> <tr><td>[[Datei:FB_Bart.png]]</td><td>:3</td></tr> <tr><td>[[Datei:FB_Roboter.gif]]</td><td>:|]</td></tr> <tr><td>[[Datei:FB_Putnam.gif]]</td><td>:putnam:</td></tr> <tr><td>[[Datei:FB_Pinguin.gif]]</td><td><(")</td></tr> <tr><td>[[Datei:FB_Hai.gif]]</td><td>(^^^)</td></tr> </table> c4daab0e106459abbdde764d8af80c54dce4fd61 155 154 2010-12-07T15:24:32Z Satria 1 wikitext text/x-wiki ==Chat-codes / Smilies== <table> <tr><td>*Text*</td><td><b>Text</b></td></tr> <tr><td>_Text_</td><td><u>Text</u></td></tr> <tr><td>*_Text_*</td><td><b><u>Text</u></b></td></tr> <tr><td>[[Datei:FB_Ursmilie.png]]</td><td>:)</td></tr> <tr><td>[[Datei:FB_Traurig.png]]</td><td>:(</td></tr> <tr><td>[[Datei:FB_Zunge.png]]</td><td>:P</td></tr> <tr><td>[[Datei:FB_Lachen.png]]</td><td>:D</td></tr> <tr><td>[[Datei:FB_Angst.png]]</td><td>:O</td></tr> <tr><td>[[Datei:FB_Zwinkern.png]]</td><td>;)</td></tr> <tr><td>[[Datei:FB_Cool1.png]]</td><td>8)</td></tr> <tr><td>[[Datei:FB_Cool2.png]]</td><td>8|</td></tr> <tr><td>[[Datei:FB_Sauer.png]]</td><td>>:(</td></tr> <tr><td>[[Datei:FB_Ratlos.png]]</td><td>:\</td></tr> <tr><td>[[Datei:FB_Weint.png]]</td><td>:'(</td></tr> <tr><td>[[Datei:FB_Teufel.png]]</td><td>3:)</td></tr> <tr><td>[[Datei:FB_Engel.png]]</td><td>O:)</td></tr> <tr><td>[[Datei:FB_Kuss.png]]</td><td>:-*</td></tr> <tr><td>[[Datei:FB_Herz.png]]</td><td><3</td></tr> <tr><td>[[Datei:FB_Froh.png]]</td><td>^-^</td></tr> <tr><td>[[Datei:FB_Zufrieden.png]]</td><td>-_-</td></tr> <tr><td>[[Datei:FB_Verwirrt.png]]</td><td>O.o</td></tr> <tr><td>[[Datei:FB_Schadenfroh.png]]</td><td>>:o</td></tr> <tr><td>[[Datei:FB_Packman.png]]</td><td>:v</td></tr> <tr><td>[[Datei:FB_Bart.png]]</td><td>:3</td></tr> <tr><td>[[Datei:FB_Roboter.gif]]</td><td>:|]</td></tr> <tr><td>[[Datei:FB_Putnam.gif]]</td><td>:putnam:</td></tr> <tr><td>[[Datei:FB_Pinguin.gif]]</td><td><(")</td></tr> <tr><td>[[Datei:FB_Hai.gif]]</td><td>(^^^)</td></tr> </table> (All rights by Facebook) 43dd50b29be21d5f4bf1941cdfe854cc16b98248 Datei:FB Ursmilie.png 6 54 128 2010-12-07T15:12:49Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Traurig.png 6 55 129 2010-12-07T15:13:49Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Zunge.png 6 56 130 2010-12-07T15:14:05Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Lachen.png 6 57 132 2010-12-07T15:15:00Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Angst.png 6 58 133 2010-12-07T15:15:11Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Zwinkern.png 6 59 134 2010-12-07T15:15:20Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Cool1.png 6 60 135 2010-12-07T15:15:27Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Cool2.png 6 61 136 2010-12-07T15:16:17Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Sauer.png 6 62 137 2010-12-07T15:16:50Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Ratlos.png 6 63 138 2010-12-07T15:17:08Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Weint.png 6 64 139 2010-12-07T15:17:31Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Teufel.png 6 65 140 2010-12-07T15:18:11Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Kuss.png 6 66 141 2010-12-07T15:18:11Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Herz.png 6 67 142 2010-12-07T15:18:12Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Engel.png 6 68 143 2010-12-07T15:18:13Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Schadenfroh.png 6 69 144 2010-12-07T15:19:01Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Zufrieden.png 6 70 145 2010-12-07T15:19:06Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Verwirrt.png 6 71 146 2010-12-07T15:19:07Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Froh.png 6 72 147 2010-12-07T15:19:29Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Packman.png 6 73 148 2010-12-07T15:20:04Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Bart.png 6 74 149 2010-12-07T15:20:05Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Roboter.gif 6 75 150 2010-12-07T15:20:06Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Putnam.gif 6 76 151 2010-12-07T15:20:07Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Hai.gif 6 77 152 2010-12-07T15:20:15Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:FB Pinguin.gif 6 78 153 2010-12-07T15:21:11Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Windows Autostart Orte 0 50 156 113 2010-12-08T11:28:41Z Satria 1 wikitext text/x-wiki Bei Windows (2000 / XP) gibt es verschiedene Orte, an denen man Programme automatisch beim Starten ausführen lassen kann. Hier liste ich auch die Möglichkeiten auf, wie man Programme unbemerkt zusammen mit anderen Programmen (die möglicherweise automatisch gesatrtet werden) ausführt. Diese Techniken sind beliebt bei Viren und Trojanern! Daher kann es nicht schaden, sie zu kennen, wenn man einen solchen ohne Antivirenprogramme bekämpfen will oder muss.<br> Das Programm, das hier als Beispiel gestartet werden soll, sei "Programm.exe". == Startmenü -> Autostart == Der offensichtlichste Ort. Programme oder Verknüpfungen können hier abgelegt werden und werden nach dem Anmelden ausgeführt.<br> Welcher Ordner tatsächlich die Rolle des automatisch ausführenden Ordners einnimmt, kann in der Registry unter <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup</pre> eingestellt / verstellt werden. In diesem Schlüssel ist normalerweise so etwas hinterlegt wie: <pre>C:\Dokumente und Einstellungen\Benutzer\Startmenü\Programme\Autostart</pre> == Win.ini == Liegt in <i>C:\Windows\</i>. Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [Windows] load=Programm.exe run=Programm.exe </pre> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == System.ini == Liegt in <i>C:\Windows\</i>. Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [boot] shell=explorer.exe Programm.exe </pre> Ich vermute mal, die explorer.exe muss angegeben werden (statt <u>nur</u> Programm.exe), weil sonst der normale Desktop nicht gestartet würde.<br> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == Winstart.bat == Ähnlich der alten Autoexec.bat.<br> Keine weiteren Informationen vorhanden. == Wininit.ini == Inhalte sollen einmalig ausgeführt und die Datei anschließend gelöscht werden.<br> Keine weiteren Informationen vorhanden. == Registry == Folge Pfade in der Windows-Registrierung enthalten auch Einträge für den automatischen Start von Programmen: <pre> [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln sind nur im aktuellen Benutzerprofil gespeichert, und werden auch nur ausgeführt, wenn dieser Benutzer sich anmeldet. <pre> [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln werden beim Anmelden von jedem Benutzer ausgeführt. == Geplante Tasks == Auch hier kann es Einträge geben, bei denen eingestellt ist, das jeweilige Programm "Beim Systemstart" oder "Bei der Anmeldung" zu starten. == Quellen == http://www.gaijin.at/mantrojan.php e8b6b3372bf1a88dc50039753ccc0ce662f54c7a 157 156 2010-12-08T11:31:26Z Satria 1 wikitext text/x-wiki Bei Windows (2000 / XP) gibt es verschiedene Orte, an denen man Programme automatisch beim Starten ausführen lassen kann. Hier liste ich auch die Möglichkeiten auf, wie man Programme unbemerkt zusammen mit anderen Programmen (die möglicherweise automatisch gesatrtet werden) ausführt. Diese Techniken sind beliebt bei Viren und Trojanern! Daher kann es nicht schaden, sie zu kennen, wenn man einen solchen ohne Antivirenprogramme bekämpfen will oder muss.<br> Das Programm, das hier als Beispiel gestartet werden soll, sei "Programm.exe". == Startmenü -> Autostart == Der offensichtlichste Ort. Programme oder Verknüpfungen können hier abgelegt werden und werden nach dem Anmelden ausgeführt.<br> Welcher Ordner tatsächlich die Rolle des automatisch ausführenden Ordners einnimmt, kann in der Registry unter <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup</pre> eingestellt / verstellt werden. In diesem Schlüssel ist normalerweise so etwas hinterlegt wie: <pre>C:\Dokumente und Einstellungen\Benutzer\Startmenü\Programme\Autostart</pre> == Win.ini == Liegt im Windows-Ordner (normal <i>C:\Windows\</i> oder <i>C:\WINNT\</i>). Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [Windows] load=Programm.exe run=Programm.exe </pre> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == System.ini == Liegt im Windows-Ordner (normal <i>C:\Windows\</i> oder <i>C:\WINNT\</i>). Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [boot] shell=explorer.exe Programm.exe </pre> Ich vermute mal, die explorer.exe muss angegeben werden (statt <u>nur</u> Programm.exe), weil sonst der normale Desktop nicht gestartet würde.<br> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == Winstart.bat == Ähnlich der alten Autoexec.bat.<br> Keine weiteren Informationen vorhanden. == Wininit.ini == Inhalte sollen einmalig ausgeführt und die Datei anschließend gelöscht werden.<br> Keine weiteren Informationen vorhanden. == Registry == Folge Pfade in der Windows-Registrierung enthalten auch Einträge für den automatischen Start von Programmen: <pre> [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln sind nur im aktuellen Benutzerprofil gespeichert, und werden auch nur ausgeführt, wenn dieser Benutzer sich anmeldet. <pre> [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln werden beim Anmelden von jedem Benutzer ausgeführt. == Geplante Tasks == Auch hier kann es Einträge geben, bei denen eingestellt ist, das jeweilige Programm "Beim Systemstart" oder "Bei der Anmeldung" zu starten. == Quellen == http://www.gaijin.at/mantrojan.php 40bba9e76a7d0802c67a9eb5f667ae756d31283e 158 157 2010-12-15T12:27:32Z Satria 1 wikitext text/x-wiki Bei Windows (2000 / XP) gibt es verschiedene Orte, an denen man Programme automatisch beim Starten ausführen lassen kann. Hier liste ich auch die Möglichkeiten auf, wie man Programme unbemerkt zusammen mit anderen Programmen (die möglicherweise automatisch gesatrtet werden) ausführt. Diese Techniken sind beliebt bei Viren und Trojanern! Daher kann es nicht schaden, sie zu kennen, wenn man einen solchen ohne Antivirenprogramme bekämpfen will oder muss.<br> Das Programm, das hier als Beispiel gestartet werden soll, sei "Programm.exe". == Startmenü -> Autostart == Der offensichtlichste Ort. Programme oder Verknüpfungen können hier abgelegt werden und werden nach dem Anmelden ausgeführt.<br> Welcher Ordner tatsächlich die Rolle des automatisch ausführenden Ordners einnimmt, kann in der Registry unter <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup</pre> eingestellt / verstellt werden. In diesem Schlüssel ist normalerweise so etwas hinterlegt wie: <pre>C:\Dokumente und Einstellungen\Benutzer\Startmenü\Programme\Autostart</pre> == Win.ini == Liegt im Windows-Ordner (normal <i>C:\Windows\</i> oder <i>C:\WINNT\</i>). Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [Windows] load=Programm.exe run=Programm.exe </pre> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == System.ini == Liegt im Windows-Ordner (normal <i>C:\Windows\</i> oder <i>C:\WINNT\</i>). Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [boot] shell=explorer.exe Programm.exe </pre> Ich vermute mal, die explorer.exe muss angegeben werden (statt <u>nur</u> Programm.exe), weil sonst der normale Desktop nicht gestartet würde.<br> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == Winstart.bat == Ähnlich der alten Autoexec.bat.<br> Keine weiteren Informationen vorhanden. == Wininit.ini == Inhalte sollen einmalig ausgeführt und die Datei anschließend gelöscht werden.<br> Keine weiteren Informationen vorhanden. == Registry == Folge Pfade in der Windows-Registrierung enthalten auch Einträge für den automatischen Start von Programmen: <pre> [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln sind nur im aktuellen Benutzerprofil gespeichert, und werden auch nur ausgeführt, wenn dieser Benutzer sich anmeldet. <pre> [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln werden beim Anmelden von jedem Benutzer ausgeführt. == Geplante Tasks == Auch hier kann es Einträge geben, bei denen eingestellt ist, das jeweilige Programm "Beim Systemstart" oder "Bei der Anmeldung" zu starten. == Startup Scripts == Etwas versteckter / unbekannter dürften die Startup/Shutdown Scripts sein, die man in den Gruppenrichtlinien findet.<br> <pre>Start -> Ausführen -> gpedit.msc -> OK</pre> Skripte, die beim Hoch- und Runterfahren des Systems oder bein An- und Abmelden des jeweiligen Benutzers ausgeführt werden, findet man hier: <pre> Computerkonfiguration Windows-Einstellungen Skripts (Start/Herunterfahren) </pre> bzw. in den Ordnen <pre> C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Startup C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown </pre> oder unter <pre> Benutzerkonfiguration Windows-Einstellungen Skripts (Anmelden/Abmelden) </pre> bzw. in den Ordnen <pre> C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logon C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logoff </pre> Ich denke, die Skripte können BAT, CMD, oder VBS sein. == Quellen == http://www.gaijin.at/mantrojan.php c8a0c8a0a2b2c025b03d305701c467f42fd6e544 159 158 2010-12-15T12:39:21Z Satria 1 /* Startup Scripts */ wikitext text/x-wiki Bei Windows (2000 / XP) gibt es verschiedene Orte, an denen man Programme automatisch beim Starten ausführen lassen kann. Hier liste ich auch die Möglichkeiten auf, wie man Programme unbemerkt zusammen mit anderen Programmen (die möglicherweise automatisch gesatrtet werden) ausführt. Diese Techniken sind beliebt bei Viren und Trojanern! Daher kann es nicht schaden, sie zu kennen, wenn man einen solchen ohne Antivirenprogramme bekämpfen will oder muss.<br> Das Programm, das hier als Beispiel gestartet werden soll, sei "Programm.exe". == Startmenü -> Autostart == Der offensichtlichste Ort. Programme oder Verknüpfungen können hier abgelegt werden und werden nach dem Anmelden ausgeführt.<br> Welcher Ordner tatsächlich die Rolle des automatisch ausführenden Ordners einnimmt, kann in der Registry unter <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup</pre> eingestellt / verstellt werden. In diesem Schlüssel ist normalerweise so etwas hinterlegt wie: <pre>C:\Dokumente und Einstellungen\Benutzer\Startmenü\Programme\Autostart</pre> == Win.ini == Liegt im Windows-Ordner (normal <i>C:\Windows\</i> oder <i>C:\WINNT\</i>). Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [Windows] load=Programm.exe run=Programm.exe </pre> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == System.ini == Liegt im Windows-Ordner (normal <i>C:\Windows\</i> oder <i>C:\WINNT\</i>). Eine traditionell beibehaltene Datei, aus relativ alten Windows-Tagen (Windows 3.11, Windows95). Programme die beim Starten von Windows ausgeführt werden sollen, müssen sich hier befinden: <pre> [boot] shell=explorer.exe Programm.exe </pre> Ich vermute mal, die explorer.exe muss angegeben werden (statt <u>nur</u> Programm.exe), weil sonst der normale Desktop nicht gestartet würde.<br> Möglich, dass diese Datei in höheren Windows-Versionen nicht mehr berücksichtigt wird! == Winstart.bat == Ähnlich der alten Autoexec.bat.<br> Keine weiteren Informationen vorhanden. == Wininit.ini == Inhalte sollen einmalig ausgeführt und die Datei anschließend gelöscht werden.<br> Keine weiteren Informationen vorhanden. == Registry == Folge Pfade in der Windows-Registrierung enthalten auch Einträge für den automatischen Start von Programmen: <pre> [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln sind nur im aktuellen Benutzerprofil gespeichert, und werden auch nur ausgeführt, wenn dieser Benutzer sich anmeldet. <pre> [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] </pre> Die Programme in diesen Schlüsseln werden beim Anmelden von jedem Benutzer ausgeführt. == Geplante Tasks == Auch hier kann es Einträge geben, bei denen eingestellt ist, das jeweilige Programm "Beim Systemstart" oder "Bei der Anmeldung" zu starten. == Startup Scripts == Etwas versteckter / unbekannter dürften die Startup/Shutdown Scripts sein, die man in den Gruppenrichtlinien findet.<br> <pre>Start -> Ausführen -> gpedit.msc -> OK</pre> Skripte, die beim Hoch- und Runterfahren des Systems oder bein An- und Abmelden des jeweiligen Benutzers ausgeführt werden, findet man hier: <pre> Computerkonfiguration Windows-Einstellungen Skripts (Start/Herunterfahren) </pre> bzw. in den Ordnen <pre> C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Startup C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown </pre> oder unter <pre> Benutzerkonfiguration Windows-Einstellungen Skripts (Anmelden/Abmelden) </pre> bzw. in den Ordnen <pre> C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logon C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logoff </pre> Ich denke, die Skripte können BAT, CMD, oder VBS sein. Die Ordner sind hierbei nur Standard-Ordner! Die Skripte können überall liegen, und werden auch nur ausgeführt, wenn sie in den Gruppenrichtlinien als Skript hinzugefügt wurden. Das alleinige Vorhandensein im Ordner führt <u>nicht</u> zur Ausführung! == Quellen == http://www.gaijin.at/mantrojan.php 49221e0878f678e279964126cfd325a6052aa7d8 Windows Netzwerkprobleme 0 28 160 41 2010-12-20T11:38:51Z Satria 1 /* Computer im LAN nicht mehr "sichtbar" */ wikitext text/x-wiki ==Abbruch beim Kopieren über Netzwerk== Es kommt vor, da meldet der PC beim Versuch, größere Datenmengen über das Netzwerk zu kopieren: <pre>Die Datei ... konnte nicht kopiert werden. Der angegebene Netzwerkname ist nicht mehr verfügbar.</pre> Nach längerer Suche, fand ich heraus, das dies daran liegen kann, dass der Server der Übertragung (von dem Kopiert werden soll) glaubt, es handle sich bei den Zugriffen um einen [[DoS]] Angriff! Ein Blick in die Ereignisanzeige/System bestätigte dies: <pre>Der Server hat einen versuchten Dienstverweigerungsangriff von Client ... ermittelt. Der Server hat die Verbindung getrennt.</pre> Beheben kann man das wie folgt über Registry Einträge: <pre>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\MaxMxpCt = 50..65535 [[DWORD]</pre> Mein Vorschlag: 16384. 2048 funktionierte zuerst, größere Dateien schlugen aber immernoch fehl. Falls das nicht ausreicht, kann man die [[DoS]] detection auch ausschalten. '''(Achtung: Eingriff in die Sicherheit!)''' <pre>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableDos = 1 [[DWORD]</pre> ==Computer im LAN nicht mehr "sichtbar"== Wenn der Ping auf einen Computer nicht mehr funktioniert, d.h. wenn es dabei zu einer Zeitüberschreitung kommt, die Firewall aber entweder aus ist oder korrekt konfiguriert, und LAN Zugriffe durchlassen müsste, könnte es an folgender Einstellung liegen: Für den betroffene Netzwerkadapter wurde NAT aktiviert ("Gemeinsame Nutzung der Internetverbindung"), wie es bei Servern mit mehr als 2 Netzwerkkarten gemacht wird oder auch auf dem einfachen PC, auf dem man VMWare Virtual Machines benutzt, deren Netzwerkkarte als "NAT" konfiguriert ist, damit diese die LAN-Internet-Anbindung des Host-Systems nutzen können. Scheinbar willkürlich gibt es Systeme, die dann den ping verweigern und auch nicht mehr über NetBIOS (Ordnerfreigaben) erreichbar sind. 51ed8c9a1f11c626f7b4cab0a3f16b0c891246ab USB BootStick (alt) 0 79 162 2011-03-24T09:30:33Z Satria 1 Die Seite wurde neu angelegt: „Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird <u>eine</u> Möglichkeit beschrieben, die sich als relativ leich…“ wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist keine Schritt-für-Schritt Anleitung für Anfänger! == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * [http://simplux.org/siblo/ SIBLO Boot Loader] * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 SP1 CD (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' und das Änderungsdatum '''24.03.2005, 16:29:42''' haben. Es ist möglich, dass auch andere Versionen funktionieren. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). == Erklärungen == Das hier verwendete Prinzip macht sich die Eigenschaft des Windows2003 SP1 NT-loaders zu Nutze, dass dieser eine ISO-Datei in eine RAM-disk laden und den Bootvorgang von dort fortsetzen kann. 68a9aec25e449311069fb4e46f3322cbdad48f2c 163 162 2011-03-24T09:48:36Z Satria 1 Fortsetzung wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist keine Schritt-für-Schritt Anleitung für Anfänger! == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * [http://simplux.org/siblo/ SIBLO Boot Loader] * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 SP1 CD (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' und das Änderungsdatum '''24.03.2005, 16:29:42''' haben. Es ist möglich, dass auch andere Versionen funktionieren. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [Das Programm HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 SP1 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk zu laden und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" IN der ISO Datei befindet! == Vorbereiten des USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Eine Partitionstabelle ist in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "Aktiv" markiert werden. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in NTLDR und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> 19a6cea7fa259ba6388d99ab4408e723ed4cc0f2 164 163 2011-03-24T10:16:26Z Satria 1 Fortsetzung wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist keine Schritt-für-Schritt Anleitung für Anfänger! == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * [http://simplux.org/siblo/ SIBLO Boot Loader] * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 SP1 CD (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' und das Änderungsdatum '''24.03.2005, 16:29:42''' haben. Es ist möglich, dass auch andere Versionen funktionieren. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [Das Programm HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 SP1 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk zu laden und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" IN der ISO Datei befindet! == Vorbereiten des USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Eine Partitionstabelle ist in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "Aktiv" markiert werden. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Dann kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! b759e3ec48f517c714d9851488287f4ab021a12c 165 164 2011-03-24T11:14:52Z Satria 1 wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist keine Schritt-für-Schritt Anleitung für Anfänger! == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * [http://simplux.org/siblo/ SIBLO Boot Loader] * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [Das Programm HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk zu laden und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" IN der ISO Datei befindet! == Vorbereiten des USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Eine Partitionstabelle ist in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "Aktiv" markiert werden. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! f14cbf448015fafc8bfffc8c6fc65a1f589681f9 166 165 2011-03-24T13:07:48Z Satria 1 /* Vorbereiten des USB Sticks */ wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist keine Schritt-für-Schritt Anleitung für Anfänger! == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * [http://simplux.org/siblo/ SIBLO Boot Loader] * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [Das Programm HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk zu laden und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" IN der ISO Datei befindet! == Vorbereiten des USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! 1162568a47257060160d6038f73b1d0863d88d96 Mobilfunk Vorwahlen 0 81 169 2011-05-06T22:23:06Z Satria 1 Die Seite wurde neu angelegt: „Die 4 deutschen Mobilfunknetze haben folgen, ihnen zugeordnete Vorwahlen:<br> <br> <table> <tr> <td>T-Mobile (D1):</td> <td>0151x, 0160, 0170, 0171, 017…“ wikitext text/x-wiki Die 4 deutschen Mobilfunknetze haben folgen, ihnen zugeordnete Vorwahlen:<br> <br> <table> <tr> <td>T-Mobile (D1):</td> <td>0151x, 0160, 0170, 0171, 0175</td> </tr> <tr> <td>Vodafone (D2):</td> <td>0152x, 0162, 0172, 0173, 0174</td> </tr> <tr> <td>E-Plus (E):</td> <td>0157x, 0163, 0177, 0178</td> </tr> <tr> <td>o2 (E):</td> <td>0159x, 0176, 0179</td> </tr> </table> <br> Seit es die Rufnummernportierung oder Rufnummernmitnahme gibt, kann es nun sein, dass beispielsweise eine 0172-er Nummer trotz allem eine o2 Nummer ist. 100% sicher sein, welches Netz man gerade anruft, kann man also nicht mehr. 0341d0982ee94f9360a4d94e5bf0f7aa529da81f 170 169 2011-05-06T22:28:42Z Satria 1 wikitext text/x-wiki Die 4 deutschen Mobilfunknetze haben folgende, ihnen zugeordnete Vorwahlen:<br> <br> <table> <tr> <td>T-Mobile (D1):</td> <td>0151x, 0160, 0170, 0171, 0175</td> </tr> <tr> <td>Vodafone (D2):</td> <td>0152x, 0162, 0172, 0173, 0174</td> </tr> <tr> <td>E-Plus (E):</td> <td>0157x, 0163, 0177, 0178</td> </tr> <tr> <td>o2 (E):</td> <td>0159x, 0176, 0179</td> </tr> </table> <br> Seit es die Rufnummernportierung oder Rufnummernmitnahme gibt, kann es nun sein, dass beispielsweise eine 0172-er Nummer trotz allem eine o2 Nummer ist. 100% sicher sein, welches Netz man gerade anruft, kann man also nicht mehr. b73fc01add6254784037dc53e982db1a98cc7995 171 170 2011-05-06T22:29:22Z Satria 1 wikitext text/x-wiki Die 4 deutschen Mobilfunknetze haben folgende, ihnen zugeordnete Vorwahlen:<br> <br> <table> <tr> <td>T-Mobile (D1):</td> <td>0151x, 0160, 0170, 0171, 0175</td> </tr> <tr> <td>Vodafone (D2):</td> <td>0152x, 0162, 0172, 0173, 0174</td> </tr> <tr> <td>E-Plus (E):</td> <td>0157x, 0163, 0177, 0178</td> </tr> <tr> <td>o2 (E):</td> <td>0159x, 0176, 0179</td> </tr> </table> <br> Seit es die Rufnummernportierung oder Rufnummernmitnahme gibt, kann es nun sein, dass beispielsweise eine 0172-er Nummer trotz allem eine o2 Nummer ist. 100% sicher sein, welches Netz man gerade anruft, kann man also anhand der Vorwahl nicht mehr. 9a941e6dc63ebe4d001455039dbdb6481b12c398 EHEC 0 83 174 2011-05-31T21:10:13Z Satria 1 Die Seite wurde neu angelegt: „Das hier sind gesammelte Informationen über den EHEC Erreger, seine Folgen und Übertragungswege. Die fachliche Qualität der Angaben konnte nicht geprüft werde…“ wikitext text/x-wiki Das hier sind gesammelte Informationen über den EHEC Erreger, seine Folgen und Übertragungswege. Die fachliche Qualität der Angaben konnte nicht geprüft werden, aber alle Quellen sind unten angegeben. ==Abkürzung== EnteroHämorrhagische Escheria Coli ==Vorkommen== Die "normalen" Escherichia Coli Bakterien hat jeder von uns im Darm, wo sie auch lebensnotwendig sind! Die EHEC-Variante produziert aber Giftstoffe. Im menschlichen Darm kommen EHEC-Bakterien normalerweise nicht vor. Das natürliche Reservoir für diese Keime sind Rinder und andere Wiederkäuer (z.B. Schafe, Ziegen, Rehe, Hirsche), bei denen EHEC im Darm und damit im Kot vorkommen können, ohne dass die Tiere erkranken. Auch bei Schweinen, Katzen, Hunden, Geflügel und wild lebenden Vögeln wurden diese Erreger nachgewiesen. ==Infektion=== Eine Infektion mit EHEC kann symptomlos verlaufen, wobei der Erreger über 1-3 Wochen, selten über längere Zeit ausgeschieden wird. Während dieser Zeit können bei unzureichender Hygiene andere Menschen angesteckt werden. Treten Symptome auf, kommt es meist nach einer Inkubationszeit von 1-8 Tagen zu Übelkeit, Erbrechen und leichten, wässrigen Durchfällen. ==Infektionswege== <b>Lebensmittel<b> <ul> <li>Verzehr von rohem oder unzureichend gegartem Fleisch sowie in nicht korrekt gereiften Rohprodukten (z. B. schnittfeste oder streichfähige Rohwürste). Kontaminationsmöglichkeiten bestehen auf allen Stufen der Produktion, insbesondere aber während des Schlachtvorganges.</li> <li>Genuss von roher oder unzureichend erhitzter Milch. Bei der Milchgewinnung können die Erreger mit winzigen Kotpartikeln in die Rohmilch gelangen. Pasteurisierte Milch und entsprechende Milchprodukte sind dagegen primär frei von Krankheitserregern.</li> <li>Auch pflanzliche Lebensmittel (z.B. Gemüse, Tee, Gewürze), die mit dem Dung landwirtschaftlicher Nutztiere oder dem Kot wildlebender Tiere verunreinigt sind, kommen als Infektionsquellen in Frage.</li> <li>Vereinzelt sind im Ausland auch Infektionen durch fäkal verunreinigtes Trink- und Badewasser beobachtet worden.</li> </ul> <b>Tierkontakte</b> Das Fell von Tieren, insbesondere von Rindern, Schafen, Ziegen ist häufig mit Kot verunreinigt. Durch Berühren und Streicheln der Tiere können dann EHEC-Bakterien auf die Hände und von dort direkt oder über Lebensmittel in den Mund gelangen. <b>Übertragung von Mensch zu Mensch</b> Im Unterschied zu anderen bakteriellen Erregern von Durchfallserkrankungen spielt bei EHEC-Bakterien aufgrund ihrer geringeren Infektionsdosis (unter 100 EHEC-Bakterien sind ausreichend; zum Vergleich: Salmonellen: 104-106 Bakterien) die Möglichkeit einer direkten Übertragung von Mensch zu Mensch durch Schmierinfektion eine größere Rolle. So können EHEC-Bakterien, die mit dem Stuhl ausgeschieden werden und sich bei mangelhafter Hygiene auf Händen oder Gegenständen (Spielzeug, Handtücher) befinden können, beispielsweise innerhalb von Toilettengemeinschaften (z.B. in Familien oder Kindergärten) oder bei der Pflege von Kranken (z.B. beim Wickeln erkrankter Säuglinge) übertragen werden. ==Prävention== <ul> <li>Verzichten Sie bei der Ernährung vorsorglich auf Rohmilch, -produkte, rohes oder nicht ausreichend erhitztes Fleisch sowie nicht ausreichend erhitzte, ungereifte Wurstwaren (z. B. Zwielbelmettwurst), wenn sich Säuglinge, Kleinkinder, alte oder kranke Menschen in Ihrem Haushalt befinden. An die Gewinnung von Vorzugsmilch werden besondere hygienische Anforderungen gestellt. Mit Sicherheit ausgeschlossen wird das Vorhandensein von EHEC allerdings nur durch ausreichende Erhitzung (Abkochen). In Einrichtungen zur Gemeinschaftsverpflegung ist eine derartige Behandlung auch für Vorzugsmilch vorgeschrieben.</li> <li>Rohes Fleisch wegen der Gefahr der Bakterienübertragung nicht in Kontakt mit anderen Lebensmitteln bringen.</li> <li>Das bei der Fleischzubereitung verwendete Küchengeschirr und die Arbeitsflächen einschließlich der Schneidebretter sorgfältig reinigen, bevor sie für weitere Küchenarbeiten verwendet werden.</li> <li>Hände regelmäßig gründlich waschen, insbesondere nach jedem Toilettenbesuch, vor der Küchenarbeit, nach dem Hantieren mit rohem Fleisch, vor dem Essen und nach Umgang mit Tieren.</li> <li>Kinder beim Umgang mit Tieren (z.B. auf dem Bauernhof oder im Streichelzoo) beaufsichtigen, um zu verhindern, dass die Kinder dabei Finger in den Mund nehmen oder gleichzeitig essen.</li> </ul> ==Quellen== http://www.lgl.bayern.de/gesundheit/ehec.htm bd97ae3e2bee164ad4a7ff684f2c33be6561a3ec 175 174 2011-05-31T21:12:32Z Satria 1 wikitext text/x-wiki Das hier sind gesammelte Informationen über den EHEC Erreger, seine Folgen und Übertragungswege. Die fachliche Qualität der Angaben konnte nicht geprüft werden, aber alle Quellen sind unten angegeben. ==Abkürzung== EnteroHämorrhagische Escheria Coli ==Vorkommen== Die "normalen" Escherichia Coli Bakterien hat jeder von uns im Darm, wo sie auch lebensnotwendig sind! Die EHEC-Variante produziert aber Giftstoffe. Im menschlichen Darm kommen EHEC-Bakterien normalerweise nicht vor. Das natürliche Reservoir für diese Keime sind Rinder und andere Wiederkäuer (z.B. Schafe, Ziegen, Rehe, Hirsche), bei denen EHEC im Darm und damit im Kot vorkommen können, ohne dass die Tiere erkranken. Auch bei Schweinen, Katzen, Hunden, Geflügel und wild lebenden Vögeln wurden diese Erreger nachgewiesen. ==Infektion== Eine Infektion mit EHEC kann symptomlos verlaufen, wobei der Erreger über 1-3 Wochen, selten über längere Zeit ausgeschieden wird. Während dieser Zeit können bei unzureichender Hygiene andere Menschen angesteckt werden. Treten Symptome auf, kommt es meist nach einer Inkubationszeit von 1-8 Tagen zu Übelkeit, Erbrechen und leichten, wässrigen Durchfällen. ==Infektionswege== <b>Lebensmittel</b> <ul> <li>Verzehr von rohem oder unzureichend gegartem Fleisch sowie in nicht korrekt gereiften Rohprodukten (z. B. schnittfeste oder streichfähige Rohwürste). Kontaminationsmöglichkeiten bestehen auf allen Stufen der Produktion, insbesondere aber während des Schlachtvorganges.</li> <li>Genuss von roher oder unzureichend erhitzter Milch. Bei der Milchgewinnung können die Erreger mit winzigen Kotpartikeln in die Rohmilch gelangen. Pasteurisierte Milch und entsprechende Milchprodukte sind dagegen primär frei von Krankheitserregern.</li> <li>Auch pflanzliche Lebensmittel (z.B. Gemüse, Tee, Gewürze), die mit dem Dung landwirtschaftlicher Nutztiere oder dem Kot wildlebender Tiere verunreinigt sind, kommen als Infektionsquellen in Frage.</li> <li>Vereinzelt sind im Ausland auch Infektionen durch fäkal verunreinigtes Trink- und Badewasser beobachtet worden.</li> </ul> <b>Tierkontakte</b> Das Fell von Tieren, insbesondere von Rindern, Schafen, Ziegen ist häufig mit Kot verunreinigt. Durch Berühren und Streicheln der Tiere können dann EHEC-Bakterien auf die Hände und von dort direkt oder über Lebensmittel in den Mund gelangen. <b>Übertragung von Mensch zu Mensch</b> Im Unterschied zu anderen bakteriellen Erregern von Durchfallserkrankungen spielt bei EHEC-Bakterien aufgrund ihrer geringeren Infektionsdosis (unter 100 EHEC-Bakterien sind ausreichend; zum Vergleich: Salmonellen: 104-106 Bakterien) die Möglichkeit einer direkten Übertragung von Mensch zu Mensch durch Schmierinfektion eine größere Rolle. So können EHEC-Bakterien, die mit dem Stuhl ausgeschieden werden und sich bei mangelhafter Hygiene auf Händen oder Gegenständen (Spielzeug, Handtücher) befinden können, beispielsweise innerhalb von Toilettengemeinschaften (z.B. in Familien oder Kindergärten) oder bei der Pflege von Kranken (z.B. beim Wickeln erkrankter Säuglinge) übertragen werden. ==Prävention== <ul> <li>Verzichten Sie bei der Ernährung vorsorglich auf Rohmilch, -produkte, rohes oder nicht ausreichend erhitztes Fleisch sowie nicht ausreichend erhitzte, ungereifte Wurstwaren (z. B. Zwielbelmettwurst), wenn sich Säuglinge, Kleinkinder, alte oder kranke Menschen in Ihrem Haushalt befinden. An die Gewinnung von Vorzugsmilch werden besondere hygienische Anforderungen gestellt. Mit Sicherheit ausgeschlossen wird das Vorhandensein von EHEC allerdings nur durch ausreichende Erhitzung (Abkochen). In Einrichtungen zur Gemeinschaftsverpflegung ist eine derartige Behandlung auch für Vorzugsmilch vorgeschrieben.</li> <li>Rohes Fleisch wegen der Gefahr der Bakterienübertragung nicht in Kontakt mit anderen Lebensmitteln bringen.</li> <li>Das bei der Fleischzubereitung verwendete Küchengeschirr und die Arbeitsflächen einschließlich der Schneidebretter sorgfältig reinigen, bevor sie für weitere Küchenarbeiten verwendet werden.</li> <li>Hände regelmäßig gründlich waschen, insbesondere nach jedem Toilettenbesuch, vor der Küchenarbeit, nach dem Hantieren mit rohem Fleisch, vor dem Essen und nach Umgang mit Tieren.</li> <li>Kinder beim Umgang mit Tieren (z.B. auf dem Bauernhof oder im Streichelzoo) beaufsichtigen, um zu verhindern, dass die Kinder dabei Finger in den Mund nehmen oder gleichzeitig essen.</li> </ul> ==Heilung== Eine antibiotische Behandlung von EHEC-Infektionen ist problematisch. Es wurde beobachtet, dass die Abtötung oder Schädigung der Erreger durch Antibiotika verstärkt EHEC-Giftstoffe freisetzt und das Krankheitsbild verschlimmern kann. Bei massiven Durchfällen ist der Ausgleich des Salz- und Flüssigkeitsverlustes die wichtigste therapeutische Maßnahme. Schwere Krankheitsverläufe sind im Krankenhaus zu behandeln, damit auftretende Komplikationen, insbesondere bei empfindlichen Personen (Säuglinge, Kleinkinder, alte Menschen, abwehrgeschwächte Personen), rechtzeitig erkannt und behandelt werden können. <b>Antikörper helfen bei HUS</b> Der schwere Verlauf einer EHEC-Infektion, das sogenannte Hämolytisch-urämische Syndrom (HUS), lässt sich erfolgreich mit Antikörpern behandeln. Im letzten Jahr konnten drei Kleinkinder, die mit dem aggressiven Durchfallerreger infiziert hatten, durch die Gabe von monoklonalen Antikörpern geheilt werden. Die dreijährigen Kinder litten infolge der EHEC-Infektion an akutem Nierenversagen und mussten an eine Dialyse. Da ein mehrmaliger Austausch des Blutplasmas ohne Wirkung blieb, entschloß sich Prof. Franz Schaefer vom Zentrum für Kinder- und Jugendmedizin am Universitätsklinikum Heidelberg zu einem Behandlungsversuch mit Eculizumab. Schnelle Heilung:<br> Eculizumab ist ein monoklonaler Antikörper, der seit 2007 zur Behandlung einer seltenen Blutkrankheit sowie einer seltenen angeborenen Form von HUS zugelassen ist. Schaefer und Kollegen konnten zeigen, dass das Medikament auch beim durch EHEC verursachten hämolytisch-urämischen Syndrom helfen kann. Die Kinder erhielten zwei bis drei Infusionen mit Eculizumab im Abstand von sieben Tagen. Schon innerhalb von 24 Stunden nach der ersten Infusion verbesserte sich der Zustand der Kleinen dramatisch: Die Blutwerte normalisierten sich. Die Nieren gewannen ihre Funktionsfähigkeit zurück. Alle drei Kinder gesundeten und zeigten keine Folgeschäden. ==Quellen== http://www.lgl.bayern.de/gesundheit/ehec.htm http://www.hplanglotz.de/ehec-infektion-antikorper-helfen-bei-hus/ c42aa2ae8fb0330f90daff1ce92de4d728c1f9e8 176 175 2011-05-31T21:13:19Z Satria 1 wikitext text/x-wiki Das hier sind gesammelte Informationen über den EHEC Erreger, seine Folgen und Übertragungswege. Die fachliche Qualität der Angaben konnte nicht geprüft werden, aber alle Quellen sind unten angegeben. ==Abkürzung== EnteroHämorrhagische Escheria Coli ==Vorkommen== Die "normalen" Escherichia Coli Bakterien hat jeder von uns im Darm, wo sie auch lebensnotwendig sind! Die EHEC-Variante produziert aber Giftstoffe. Im menschlichen Darm kommen EHEC-Bakterien normalerweise nicht vor. Das natürliche Reservoir für diese Keime sind Rinder und andere Wiederkäuer (z.B. Schafe, Ziegen, Rehe, Hirsche), bei denen EHEC im Darm und damit im Kot vorkommen können, ohne dass die Tiere erkranken. Auch bei Schweinen, Katzen, Hunden, Geflügel und wild lebenden Vögeln wurden diese Erreger nachgewiesen. ==Infektion== Eine Infektion mit EHEC kann symptomlos verlaufen, wobei der Erreger über 1-3 Wochen, selten über längere Zeit ausgeschieden wird. Während dieser Zeit können bei unzureichender Hygiene andere Menschen angesteckt werden. Treten Symptome auf, kommt es meist nach einer Inkubationszeit von 1-8 Tagen zu Übelkeit, Erbrechen und leichten, wässrigen Durchfällen. ==Infektionswege== <b>Lebensmittel</b> <ul> <li>Verzehr von rohem oder unzureichend gegartem Fleisch sowie in nicht korrekt gereiften Rohprodukten (z. B. schnittfeste oder streichfähige Rohwürste). Kontaminationsmöglichkeiten bestehen auf allen Stufen der Produktion, insbesondere aber während des Schlachtvorganges.</li> <li>Genuss von roher oder unzureichend erhitzter Milch. Bei der Milchgewinnung können die Erreger mit winzigen Kotpartikeln in die Rohmilch gelangen. Pasteurisierte Milch und entsprechende Milchprodukte sind dagegen primär frei von Krankheitserregern.</li> <li>Auch pflanzliche Lebensmittel (z.B. Gemüse, Tee, Gewürze), die mit dem Dung landwirtschaftlicher Nutztiere oder dem Kot wildlebender Tiere verunreinigt sind, kommen als Infektionsquellen in Frage.</li> <li>Vereinzelt sind im Ausland auch Infektionen durch fäkal verunreinigtes Trink- und Badewasser beobachtet worden.</li> </ul> <b>Tierkontakte</b><br> Das Fell von Tieren, insbesondere von Rindern, Schafen, Ziegen ist häufig mit Kot verunreinigt. Durch Berühren und Streicheln der Tiere können dann EHEC-Bakterien auf die Hände und von dort direkt oder über Lebensmittel in den Mund gelangen. <b>Übertragung von Mensch zu Mensch</b><br> Im Unterschied zu anderen bakteriellen Erregern von Durchfallserkrankungen spielt bei EHEC-Bakterien aufgrund ihrer geringeren Infektionsdosis (unter 100 EHEC-Bakterien sind ausreichend; zum Vergleich: Salmonellen: 104-106 Bakterien) die Möglichkeit einer direkten Übertragung von Mensch zu Mensch durch Schmierinfektion eine größere Rolle. So können EHEC-Bakterien, die mit dem Stuhl ausgeschieden werden und sich bei mangelhafter Hygiene auf Händen oder Gegenständen (Spielzeug, Handtücher) befinden können, beispielsweise innerhalb von Toilettengemeinschaften (z.B. in Familien oder Kindergärten) oder bei der Pflege von Kranken (z.B. beim Wickeln erkrankter Säuglinge) übertragen werden. ==Prävention== <ul> <li>Verzichten Sie bei der Ernährung vorsorglich auf Rohmilch, -produkte, rohes oder nicht ausreichend erhitztes Fleisch sowie nicht ausreichend erhitzte, ungereifte Wurstwaren (z. B. Zwielbelmettwurst), wenn sich Säuglinge, Kleinkinder, alte oder kranke Menschen in Ihrem Haushalt befinden. An die Gewinnung von Vorzugsmilch werden besondere hygienische Anforderungen gestellt. Mit Sicherheit ausgeschlossen wird das Vorhandensein von EHEC allerdings nur durch ausreichende Erhitzung (Abkochen). In Einrichtungen zur Gemeinschaftsverpflegung ist eine derartige Behandlung auch für Vorzugsmilch vorgeschrieben.</li> <li>Rohes Fleisch wegen der Gefahr der Bakterienübertragung nicht in Kontakt mit anderen Lebensmitteln bringen.</li> <li>Das bei der Fleischzubereitung verwendete Küchengeschirr und die Arbeitsflächen einschließlich der Schneidebretter sorgfältig reinigen, bevor sie für weitere Küchenarbeiten verwendet werden.</li> <li>Hände regelmäßig gründlich waschen, insbesondere nach jedem Toilettenbesuch, vor der Küchenarbeit, nach dem Hantieren mit rohem Fleisch, vor dem Essen und nach Umgang mit Tieren.</li> <li>Kinder beim Umgang mit Tieren (z.B. auf dem Bauernhof oder im Streichelzoo) beaufsichtigen, um zu verhindern, dass die Kinder dabei Finger in den Mund nehmen oder gleichzeitig essen.</li> </ul> ==Heilung== Eine antibiotische Behandlung von EHEC-Infektionen ist problematisch. Es wurde beobachtet, dass die Abtötung oder Schädigung der Erreger durch Antibiotika verstärkt EHEC-Giftstoffe freisetzt und das Krankheitsbild verschlimmern kann.<br> Bei massiven Durchfällen ist der Ausgleich des Salz- und Flüssigkeitsverlustes die wichtigste therapeutische Maßnahme. Schwere Krankheitsverläufe sind im Krankenhaus zu behandeln, damit auftretende Komplikationen, insbesondere bei empfindlichen Personen (Säuglinge, Kleinkinder, alte Menschen, abwehrgeschwächte Personen), rechtzeitig erkannt und behandelt werden können. <b>Antikörper helfen bei HUS</b><br> Der schwere Verlauf einer EHEC-Infektion, das sogenannte Hämolytisch-urämische Syndrom (HUS), lässt sich erfolgreich mit Antikörpern behandeln. Im letzten Jahr konnten drei Kleinkinder, die mit dem aggressiven Durchfallerreger infiziert hatten, durch die Gabe von monoklonalen Antikörpern geheilt werden. Die dreijährigen Kinder litten infolge der EHEC-Infektion an akutem Nierenversagen und mussten an eine Dialyse. Da ein mehrmaliger Austausch des Blutplasmas ohne Wirkung blieb, entschloß sich Prof. Franz Schaefer vom Zentrum für Kinder- und Jugendmedizin am Universitätsklinikum Heidelberg zu einem Behandlungsversuch mit Eculizumab. Schnelle Heilung:<br> Eculizumab ist ein monoklonaler Antikörper, der seit 2007 zur Behandlung einer seltenen Blutkrankheit sowie einer seltenen angeborenen Form von HUS zugelassen ist. Schaefer und Kollegen konnten zeigen, dass das Medikament auch beim durch EHEC verursachten hämolytisch-urämischen Syndrom helfen kann. Die Kinder erhielten zwei bis drei Infusionen mit Eculizumab im Abstand von sieben Tagen. Schon innerhalb von 24 Stunden nach der ersten Infusion verbesserte sich der Zustand der Kleinen dramatisch: Die Blutwerte normalisierten sich. Die Nieren gewannen ihre Funktionsfähigkeit zurück. Alle drei Kinder gesundeten und zeigten keine Folgeschäden. ==Quellen== http://www.lgl.bayern.de/gesundheit/ehec.htm<br> http://www.hplanglotz.de/ehec-infektion-antikorper-helfen-bei-hus/ 8dfbff7f634f7652ff8bf9ce707a2f97cce17dbf 177 176 2011-05-31T21:19:24Z Satria 1 wikitext text/x-wiki Das hier sind gesammelte Informationen über den EHEC Erreger, seine Folgen und Übertragungswege. Die fachliche Qualität der Angaben konnte nicht geprüft werden, aber alle Quellen sind unten angegeben. ==Abkürzung== EnteroHämorrhagische Escheria Coli ==Vorkommen== Die "normalen" Escherichia Coli Bakterien hat jeder von uns im Darm, wo sie auch lebensnotwendig sind! Die EHEC-Variante produziert aber Giftstoffe. Im menschlichen Darm kommen EHEC-Bakterien normalerweise nicht vor. Das natürliche Reservoir für diese Keime sind Rinder und andere Wiederkäuer (z.B. Schafe, Ziegen, Rehe, Hirsche), bei denen EHEC im Darm und damit im Kot vorkommen können, ohne dass die Tiere erkranken. Auch bei Schweinen, Katzen, Hunden, Geflügel und wild lebenden Vögeln wurden diese Erreger nachgewiesen. ==Infektion== Eine Infektion mit EHEC kann symptomlos verlaufen, wobei der Erreger über 1-3 Wochen, selten über längere Zeit ausgeschieden wird. Während dieser Zeit können bei unzureichender Hygiene andere Menschen angesteckt werden.<br> Treten Symptome auf, kommt es meist nach einer Inkubationszeit von 1-8 Tagen zu Übelkeit, Erbrechen und leichten, wässrigen Durchfällen. Bei schwereren Krankheitsverläufen treten blutige Stühle und schmerzhafte Bauchkrämpfe auf.<br> Bei 5-10% der Erkrankten, insbesondere bei Kindern im Vorschulalter, entwickelt sich im Anschluss an die Darmbeschwerden (ca. einer Woche nach Beginn des Durchfalls) ein schweres Krankheitsbild. Es kann durch die Wirkung der EHEC-Gifte zu Blutarmut (verminderte Anzahl von roten Blutkörperchen), zu einer Gefäßschädigung mit Blutgerinnungsstörungen (verminderte Anzahl von Blutplättchen) und zu Nierenfunktionsstörungen kommen, dem sog. hämolytisch-urämischen Syndrom (HUS), das in 1-5% der Fälle bei Kindern tödlich verläuft.<br> Auch nach dem Überstehen der akuten HUS-Symptomatik können schwere, bleibende Gesundheitsschäden (Bluthochdruck, Beeinträchtigung der Nierenfunktion) zurückbleiben. ==Infektionswege== <b>Lebensmittel</b> <ul> <li>Verzehr von rohem oder unzureichend gegartem Fleisch sowie in nicht korrekt gereiften Rohprodukten (z. B. schnittfeste oder streichfähige Rohwürste). Kontaminationsmöglichkeiten bestehen auf allen Stufen der Produktion, insbesondere aber während des Schlachtvorganges.</li> <li>Genuss von roher oder unzureichend erhitzter Milch. Bei der Milchgewinnung können die Erreger mit winzigen Kotpartikeln in die Rohmilch gelangen. Pasteurisierte Milch und entsprechende Milchprodukte sind dagegen primär frei von Krankheitserregern.</li> <li>Auch pflanzliche Lebensmittel (z.B. Gemüse, Tee, Gewürze), die mit dem Dung landwirtschaftlicher Nutztiere oder dem Kot wildlebender Tiere verunreinigt sind, kommen als Infektionsquellen in Frage.</li> <li>Vereinzelt sind im Ausland auch Infektionen durch fäkal verunreinigtes Trink- und Badewasser beobachtet worden.</li> </ul> <b>Tierkontakte</b><br> Das Fell von Tieren, insbesondere von Rindern, Schafen, Ziegen ist häufig mit Kot verunreinigt. Durch Berühren und Streicheln der Tiere können dann EHEC-Bakterien auf die Hände und von dort direkt oder über Lebensmittel in den Mund gelangen. <b>Übertragung von Mensch zu Mensch</b><br> Im Unterschied zu anderen bakteriellen Erregern von Durchfallserkrankungen spielt bei EHEC-Bakterien aufgrund ihrer geringeren Infektionsdosis (unter 100 EHEC-Bakterien sind ausreichend; zum Vergleich: Salmonellen: 10000-1000000 Bakterien) die Möglichkeit einer direkten Übertragung von Mensch zu Mensch durch Schmierinfektion eine größere Rolle. So können EHEC-Bakterien, die mit dem Stuhl ausgeschieden werden und sich bei mangelhafter Hygiene auf Händen oder Gegenständen (Spielzeug, Handtücher) befinden können, beispielsweise innerhalb von Toilettengemeinschaften (z.B. in Familien oder Kindergärten) oder bei der Pflege von Kranken (z.B. beim Wickeln erkrankter Säuglinge) übertragen werden. ==Prävention== <ul> <li>Verzichten Sie bei der Ernährung vorsorglich auf Rohmilch, -produkte, rohes oder nicht ausreichend erhitztes Fleisch sowie nicht ausreichend erhitzte, ungereifte Wurstwaren (z. B. Zwielbelmettwurst), wenn sich Säuglinge, Kleinkinder, alte oder kranke Menschen in Ihrem Haushalt befinden. An die Gewinnung von Vorzugsmilch werden besondere hygienische Anforderungen gestellt. Mit Sicherheit ausgeschlossen wird das Vorhandensein von EHEC allerdings nur durch ausreichende Erhitzung (Abkochen). In Einrichtungen zur Gemeinschaftsverpflegung ist eine derartige Behandlung auch für Vorzugsmilch vorgeschrieben.</li> <li>Rohes Fleisch wegen der Gefahr der Bakterienübertragung nicht in Kontakt mit anderen Lebensmitteln bringen.</li> <li>Lebensmittel ausreichend kühlen und gründlich erhitzen.</li> Die meisten Krankheitserreger können sich sehr schnell vermehren, wenn Lebensmittel bei Raumtemperaturen gelagert werden. Bei Kühlschanktemperaturen um 5 °C oder über 60°C ist ihr Wachstum verlangsamt bzw. gestoppt. Bei Temperaturen über 70° C sterben die meisten von ihnen. Aus diesem Grund sollten gekochte und verderbliche Speisen nicht lange ungekühlt bei Zimmertemperatur herumstehen. Warme Speisen abkühlen und abgedeckt in den Kühlschrank stellen. Kurzes, gründliches Erhitzen auf Kerntemperaturen über 70 °C tötet nahezu alle gefährlichen Mikroorganismen in Lebensmitteln ab.</li> <li>Das bei der Fleischzubereitung verwendete Küchengeschirr und die Arbeitsflächen einschließlich der Schneidebretter sorgfältig reinigen, bevor sie für weitere Küchenarbeiten verwendet werden.</li> <li>Hände regelmäßig gründlich waschen, insbesondere nach jedem Toilettenbesuch, vor der Küchenarbeit, nach dem Hantieren mit rohem Fleisch, vor dem Essen und nach Umgang mit Tieren.</li> <li>Kinder beim Umgang mit Tieren (z.B. auf dem Bauernhof oder im Streichelzoo) beaufsichtigen, um zu verhindern, dass die Kinder dabei Finger in den Mund nehmen oder gleichzeitig essen.</li> </ul> ==Heilung== Eine antibiotische Behandlung von EHEC-Infektionen ist problematisch. Es wurde beobachtet, dass die Abtötung oder Schädigung der Erreger durch Antibiotika verstärkt EHEC-Giftstoffe freisetzt und das Krankheitsbild verschlimmern kann.<br> Bei massiven Durchfällen ist der Ausgleich des Salz- und Flüssigkeitsverlustes die wichtigste therapeutische Maßnahme. Schwere Krankheitsverläufe sind im Krankenhaus zu behandeln, damit auftretende Komplikationen, insbesondere bei empfindlichen Personen (Säuglinge, Kleinkinder, alte Menschen, abwehrgeschwächte Personen), rechtzeitig erkannt und behandelt werden können. <b>Antikörper helfen bei HUS</b><br> Der schwere Verlauf einer EHEC-Infektion, das sogenannte Hämolytisch-urämische Syndrom (HUS), lässt sich erfolgreich mit Antikörpern behandeln. Im letzten Jahr konnten drei Kleinkinder, die mit dem aggressiven Durchfallerreger infiziert hatten, durch die Gabe von monoklonalen Antikörpern geheilt werden. Die dreijährigen Kinder litten infolge der EHEC-Infektion an akutem Nierenversagen und mussten an eine Dialyse. Da ein mehrmaliger Austausch des Blutplasmas ohne Wirkung blieb, entschloß sich Prof. Franz Schaefer vom Zentrum für Kinder- und Jugendmedizin am Universitätsklinikum Heidelberg zu einem Behandlungsversuch mit Eculizumab. Schnelle Heilung:<br> Eculizumab ist ein monoklonaler Antikörper, der seit 2007 zur Behandlung einer seltenen Blutkrankheit sowie einer seltenen angeborenen Form von HUS zugelassen ist. Schaefer und Kollegen konnten zeigen, dass das Medikament auch beim durch EHEC verursachten hämolytisch-urämischen Syndrom helfen kann. Die Kinder erhielten zwei bis drei Infusionen mit Eculizumab im Abstand von sieben Tagen. Schon innerhalb von 24 Stunden nach der ersten Infusion verbesserte sich der Zustand der Kleinen dramatisch: Die Blutwerte normalisierten sich. Die Nieren gewannen ihre Funktionsfähigkeit zurück. Alle drei Kinder gesundeten und zeigten keine Folgeschäden. ==Quellen== http://www.lgl.bayern.de/gesundheit/ehec.htm<br> http://www.hplanglotz.de/keine-panik-vor-ehec-ansteckung<br> http://www.hplanglotz.de/ehec-infektion-antikorper-helfen-bei-hus<br> 1982e67e6be6241c078faf8ff99d47821056b39e 178 177 2011-05-31T21:26:36Z Satria 1 wikitext text/x-wiki Das hier sind gesammelte Informationen über den EHEC Erreger, seine Folgen und Übertragungswege. Die fachliche Qualität der Angaben konnte nicht geprüft werden, aber alle Quellen sind unten angegeben. ==Abkürzung== EnteroHämorrhagische Escheria Coli<br> Der Serotyp, der für den Ausbruch im Mai 2011 verantwortlich ist trägt den Code: HUSEC041 (O104:H4) ==Vorkommen== Die "normalen" Escherichia Coli Bakterien hat jeder von uns im Darm, wo sie auch lebensnotwendig sind! Die EHEC-Variante produziert aber Giftstoffe. Im menschlichen Darm kommen EHEC-Bakterien normalerweise nicht vor. Das natürliche Reservoir für diese Keime sind Rinder und andere Wiederkäuer (z.B. Schafe, Ziegen, Rehe, Hirsche), bei denen EHEC im Darm und damit im Kot vorkommen können, ohne dass die Tiere erkranken. Auch bei Schweinen, Katzen, Hunden, Geflügel und wild lebenden Vögeln wurden diese Erreger nachgewiesen. ==Infektion== Eine Infektion mit EHEC kann symptomlos verlaufen, wobei der Erreger über 1-3 Wochen, selten über längere Zeit ausgeschieden wird. Während dieser Zeit können bei unzureichender Hygiene andere Menschen angesteckt werden.<br> Treten Symptome auf, kommt es meist nach einer Inkubationszeit von 1-8 Tagen zu Übelkeit, Erbrechen und leichten, wässrigen Durchfällen. Bei schwereren Krankheitsverläufen treten blutige Stühle und schmerzhafte Bauchkrämpfe auf.<br> Bei 5-10% der Erkrankten, insbesondere bei Kindern im Vorschulalter, entwickelt sich im Anschluss an die Darmbeschwerden (ca. einer Woche nach Beginn des Durchfalls) ein schweres Krankheitsbild. Es kann durch die Wirkung der EHEC-Gifte zu Blutarmut (verminderte Anzahl von roten Blutkörperchen), zu einer Gefäßschädigung mit Blutgerinnungsstörungen (verminderte Anzahl von Blutplättchen) und zu Nierenfunktionsstörungen kommen, dem sog. hämolytisch-urämischen Syndrom (HUS), das in 1-5% der Fälle bei Kindern tödlich verläuft.<br> Auch nach dem Überstehen der akuten HUS-Symptomatik können schwere, bleibende Gesundheitsschäden (Bluthochdruck, Beeinträchtigung der Nierenfunktion) zurückbleiben. ==Infektionswege== <b>Lebensmittel</b> <ul> <li>Verzehr von rohem oder unzureichend gegartem Fleisch sowie in nicht korrekt gereiften Rohprodukten (z. B. schnittfeste oder streichfähige Rohwürste). Kontaminationsmöglichkeiten bestehen auf allen Stufen der Produktion, insbesondere aber während des Schlachtvorganges.</li> <li>Genuss von roher oder unzureichend erhitzter Milch. Bei der Milchgewinnung können die Erreger mit winzigen Kotpartikeln in die Rohmilch gelangen. Pasteurisierte Milch und entsprechende Milchprodukte sind dagegen primär frei von Krankheitserregern.</li> <li>Auch pflanzliche Lebensmittel (z.B. Gemüse, Tee, Gewürze), die mit dem Dung landwirtschaftlicher Nutztiere oder dem Kot wildlebender Tiere verunreinigt sind, kommen als Infektionsquellen in Frage.</li> <li>Vereinzelt sind im Ausland auch Infektionen durch fäkal verunreinigtes Trink- und Badewasser beobachtet worden.</li> </ul> <b>Tierkontakte</b><br> Das Fell von Tieren, insbesondere von Rindern, Schafen, Ziegen ist häufig mit Kot verunreinigt. Durch Berühren und Streicheln der Tiere können dann EHEC-Bakterien auf die Hände und von dort direkt oder über Lebensmittel in den Mund gelangen. <b>Übertragung von Mensch zu Mensch</b><br> Im Unterschied zu anderen bakteriellen Erregern von Durchfallserkrankungen spielt bei EHEC-Bakterien aufgrund ihrer geringeren Infektionsdosis (unter 100 EHEC-Bakterien sind ausreichend; zum Vergleich: Salmonellen: 10000-1000000 Bakterien) die Möglichkeit einer direkten Übertragung von Mensch zu Mensch durch Schmierinfektion eine größere Rolle. So können EHEC-Bakterien, die mit dem Stuhl ausgeschieden werden und sich bei mangelhafter Hygiene auf Händen oder Gegenständen (Spielzeug, Handtücher) befinden können, beispielsweise innerhalb von Toilettengemeinschaften (z.B. in Familien oder Kindergärten) oder bei der Pflege von Kranken (z.B. beim Wickeln erkrankter Säuglinge) übertragen werden. ==Prävention== <ul> <li>Verzichten Sie bei der Ernährung vorsorglich auf Rohmilch, -produkte, rohes oder nicht ausreichend erhitztes Fleisch sowie nicht ausreichend erhitzte, ungereifte Wurstwaren (z. B. Zwielbelmettwurst), wenn sich Säuglinge, Kleinkinder, alte oder kranke Menschen in Ihrem Haushalt befinden. An die Gewinnung von Vorzugsmilch werden besondere hygienische Anforderungen gestellt. Mit Sicherheit ausgeschlossen wird das Vorhandensein von EHEC allerdings nur durch ausreichende Erhitzung (Abkochen). In Einrichtungen zur Gemeinschaftsverpflegung ist eine derartige Behandlung auch für Vorzugsmilch vorgeschrieben.</li> <li>Rohes Fleisch wegen der Gefahr der Bakterienübertragung nicht in Kontakt mit anderen Lebensmitteln bringen.</li> <li>Lebensmittel ausreichend kühlen und gründlich erhitzen.</li> Die meisten Krankheitserreger können sich sehr schnell vermehren, wenn Lebensmittel bei Raumtemperaturen gelagert werden. Bei Kühlschanktemperaturen um 5 °C oder über 60°C ist ihr Wachstum verlangsamt bzw. gestoppt. Bei Temperaturen über 70° C sterben die meisten von ihnen. Aus diesem Grund sollten gekochte und verderbliche Speisen nicht lange ungekühlt bei Zimmertemperatur herumstehen. Warme Speisen abkühlen und abgedeckt in den Kühlschrank stellen. Kurzes, gründliches Erhitzen auf Kerntemperaturen über 70 °C tötet nahezu alle gefährlichen Mikroorganismen in Lebensmitteln ab.</li> <li>Das bei der Fleischzubereitung verwendete Küchengeschirr und die Arbeitsflächen einschließlich der Schneidebretter sorgfältig reinigen, bevor sie für weitere Küchenarbeiten verwendet werden.</li> <li>Hände regelmäßig gründlich waschen, insbesondere nach jedem Toilettenbesuch, vor der Küchenarbeit, nach dem Hantieren mit rohem Fleisch, vor dem Essen und nach Umgang mit Tieren.</li> <li>Kinder beim Umgang mit Tieren (z.B. auf dem Bauernhof oder im Streichelzoo) beaufsichtigen, um zu verhindern, dass die Kinder dabei Finger in den Mund nehmen oder gleichzeitig essen.</li> </ul> ==Heilung== Eine antibiotische Behandlung von EHEC-Infektionen ist problematisch. Es wurde beobachtet, dass die Abtötung oder Schädigung der Erreger durch Antibiotika verstärkt EHEC-Giftstoffe freisetzt und das Krankheitsbild verschlimmern kann.<br> Bei massiven Durchfällen ist der Ausgleich des Salz- und Flüssigkeitsverlustes die wichtigste therapeutische Maßnahme. Schwere Krankheitsverläufe sind im Krankenhaus zu behandeln, damit auftretende Komplikationen, insbesondere bei empfindlichen Personen (Säuglinge, Kleinkinder, alte Menschen, abwehrgeschwächte Personen), rechtzeitig erkannt und behandelt werden können. <b>Antikörper helfen bei HUS</b><br> Der schwere Verlauf einer EHEC-Infektion, das sogenannte Hämolytisch-urämische Syndrom (HUS), lässt sich erfolgreich mit Antikörpern behandeln. Im letzten Jahr konnten drei Kleinkinder, die mit dem aggressiven Durchfallerreger infiziert hatten, durch die Gabe von monoklonalen Antikörpern geheilt werden. Die dreijährigen Kinder litten infolge der EHEC-Infektion an akutem Nierenversagen und mussten an eine Dialyse. Da ein mehrmaliger Austausch des Blutplasmas ohne Wirkung blieb, entschloß sich Prof. Franz Schaefer vom Zentrum für Kinder- und Jugendmedizin am Universitätsklinikum Heidelberg zu einem Behandlungsversuch mit Eculizumab. Schnelle Heilung:<br> Eculizumab ist ein monoklonaler Antikörper, der seit 2007 zur Behandlung einer seltenen Blutkrankheit sowie einer seltenen angeborenen Form von HUS zugelassen ist. Schaefer und Kollegen konnten zeigen, dass das Medikament auch beim durch EHEC verursachten hämolytisch-urämischen Syndrom helfen kann. Die Kinder erhielten zwei bis drei Infusionen mit Eculizumab im Abstand von sieben Tagen. Schon innerhalb von 24 Stunden nach der ersten Infusion verbesserte sich der Zustand der Kleinen dramatisch: Die Blutwerte normalisierten sich. Die Nieren gewannen ihre Funktionsfähigkeit zurück. Alle drei Kinder gesundeten und zeigten keine Folgeschäden. ==Quellen== http://www.lgl.bayern.de/gesundheit/ehec.htm<br> http://www.hplanglotz.de/keine-panik-vor-ehec-ansteckung<br> http://www.hplanglotz.de/ehec-infektion-antikorper-helfen-bei-hus<br> http://www.proplanta.de/Agrar-Nachrichten/Verbraucher/EHEC-Uebertragung-Lebensmittel-Tiere-oder-doch-Menschen_article1306866616.html<br> 03f7b27994803ff212c35f95c399546d47009c67 179 178 2011-05-31T21:30:21Z Satria 1 /* Prävention */ wikitext text/x-wiki Das hier sind gesammelte Informationen über den EHEC Erreger, seine Folgen und Übertragungswege. Die fachliche Qualität der Angaben konnte nicht geprüft werden, aber alle Quellen sind unten angegeben. ==Abkürzung== EnteroHämorrhagische Escheria Coli<br> Der Serotyp, der für den Ausbruch im Mai 2011 verantwortlich ist trägt den Code: HUSEC041 (O104:H4) ==Vorkommen== Die "normalen" Escherichia Coli Bakterien hat jeder von uns im Darm, wo sie auch lebensnotwendig sind! Die EHEC-Variante produziert aber Giftstoffe. Im menschlichen Darm kommen EHEC-Bakterien normalerweise nicht vor. Das natürliche Reservoir für diese Keime sind Rinder und andere Wiederkäuer (z.B. Schafe, Ziegen, Rehe, Hirsche), bei denen EHEC im Darm und damit im Kot vorkommen können, ohne dass die Tiere erkranken. Auch bei Schweinen, Katzen, Hunden, Geflügel und wild lebenden Vögeln wurden diese Erreger nachgewiesen. ==Infektion== Eine Infektion mit EHEC kann symptomlos verlaufen, wobei der Erreger über 1-3 Wochen, selten über längere Zeit ausgeschieden wird. Während dieser Zeit können bei unzureichender Hygiene andere Menschen angesteckt werden.<br> Treten Symptome auf, kommt es meist nach einer Inkubationszeit von 1-8 Tagen zu Übelkeit, Erbrechen und leichten, wässrigen Durchfällen. Bei schwereren Krankheitsverläufen treten blutige Stühle und schmerzhafte Bauchkrämpfe auf.<br> Bei 5-10% der Erkrankten, insbesondere bei Kindern im Vorschulalter, entwickelt sich im Anschluss an die Darmbeschwerden (ca. einer Woche nach Beginn des Durchfalls) ein schweres Krankheitsbild. Es kann durch die Wirkung der EHEC-Gifte zu Blutarmut (verminderte Anzahl von roten Blutkörperchen), zu einer Gefäßschädigung mit Blutgerinnungsstörungen (verminderte Anzahl von Blutplättchen) und zu Nierenfunktionsstörungen kommen, dem sog. hämolytisch-urämischen Syndrom (HUS), das in 1-5% der Fälle bei Kindern tödlich verläuft.<br> Auch nach dem Überstehen der akuten HUS-Symptomatik können schwere, bleibende Gesundheitsschäden (Bluthochdruck, Beeinträchtigung der Nierenfunktion) zurückbleiben. ==Infektionswege== <b>Lebensmittel</b> <ul> <li>Verzehr von rohem oder unzureichend gegartem Fleisch sowie in nicht korrekt gereiften Rohprodukten (z. B. schnittfeste oder streichfähige Rohwürste). Kontaminationsmöglichkeiten bestehen auf allen Stufen der Produktion, insbesondere aber während des Schlachtvorganges.</li> <li>Genuss von roher oder unzureichend erhitzter Milch. Bei der Milchgewinnung können die Erreger mit winzigen Kotpartikeln in die Rohmilch gelangen. Pasteurisierte Milch und entsprechende Milchprodukte sind dagegen primär frei von Krankheitserregern.</li> <li>Auch pflanzliche Lebensmittel (z.B. Gemüse, Tee, Gewürze), die mit dem Dung landwirtschaftlicher Nutztiere oder dem Kot wildlebender Tiere verunreinigt sind, kommen als Infektionsquellen in Frage.</li> <li>Vereinzelt sind im Ausland auch Infektionen durch fäkal verunreinigtes Trink- und Badewasser beobachtet worden.</li> </ul> <b>Tierkontakte</b><br> Das Fell von Tieren, insbesondere von Rindern, Schafen, Ziegen ist häufig mit Kot verunreinigt. Durch Berühren und Streicheln der Tiere können dann EHEC-Bakterien auf die Hände und von dort direkt oder über Lebensmittel in den Mund gelangen. <b>Übertragung von Mensch zu Mensch</b><br> Im Unterschied zu anderen bakteriellen Erregern von Durchfallserkrankungen spielt bei EHEC-Bakterien aufgrund ihrer geringeren Infektionsdosis (unter 100 EHEC-Bakterien sind ausreichend; zum Vergleich: Salmonellen: 10000-1000000 Bakterien) die Möglichkeit einer direkten Übertragung von Mensch zu Mensch durch Schmierinfektion eine größere Rolle. So können EHEC-Bakterien, die mit dem Stuhl ausgeschieden werden und sich bei mangelhafter Hygiene auf Händen oder Gegenständen (Spielzeug, Handtücher) befinden können, beispielsweise innerhalb von Toilettengemeinschaften (z.B. in Familien oder Kindergärten) oder bei der Pflege von Kranken (z.B. beim Wickeln erkrankter Säuglinge) übertragen werden. ==Prävention== <ul> <li>Verzichten Sie bei der Ernährung vorsorglich auf Rohmilch, -produkte, rohes oder nicht ausreichend erhitztes Fleisch sowie nicht ausreichend erhitzte, ungereifte Wurstwaren (z. B. Zwielbelmettwurst), wenn sich Säuglinge, Kleinkinder, alte oder kranke Menschen in Ihrem Haushalt befinden. An die Gewinnung von Vorzugsmilch werden besondere hygienische Anforderungen gestellt. Mit Sicherheit ausgeschlossen wird das Vorhandensein von EHEC allerdings nur durch ausreichende Erhitzung (Abkochen). In Einrichtungen zur Gemeinschaftsverpflegung ist eine derartige Behandlung auch für Vorzugsmilch vorgeschrieben.</li> <li>Rohes Fleisch wegen der Gefahr der Bakterienübertragung nicht in Kontakt mit anderen Lebensmitteln bringen.</li> <li>Lebensmittel ausreichend kühlen und gründlich erhitzen.</li> Die meisten Krankheitserreger können sich sehr schnell vermehren, wenn Lebensmittel bei Raumtemperaturen gelagert werden. Bei Kühlschanktemperaturen um 5 °C oder über 60°C ist ihr Wachstum verlangsamt bzw. gestoppt. Bei Temperaturen über 70° C sterben die meisten von ihnen. Aus diesem Grund sollten gekochte und verderbliche Speisen nicht lange ungekühlt bei Zimmertemperatur herumstehen. Warme Speisen abkühlen und abgedeckt in den Kühlschrank stellen. Kurzes, gründliches Erhitzen auf <b><u>Kerntemperaturen über 70 °C</u></b> tötet nahezu alle gefährlichen Mikroorganismen in Lebensmitteln ab.</li> <li>Das bei der Fleischzubereitung verwendete Küchengeschirr und die Arbeitsflächen einschließlich der Schneidebretter sorgfältig reinigen, bevor sie für weitere Küchenarbeiten verwendet werden.</li> <li>Hände regelmäßig gründlich waschen, insbesondere nach jedem Toilettenbesuch, vor der Küchenarbeit, nach dem Hantieren mit rohem Fleisch, vor dem Essen und nach Umgang mit Tieren.</li> <li>Kinder beim Umgang mit Tieren (z.B. auf dem Bauernhof oder im Streichelzoo) beaufsichtigen, um zu verhindern, dass die Kinder dabei Finger in den Mund nehmen oder gleichzeitig essen.</li> </ul> ==Heilung== Eine antibiotische Behandlung von EHEC-Infektionen ist problematisch. Es wurde beobachtet, dass die Abtötung oder Schädigung der Erreger durch Antibiotika verstärkt EHEC-Giftstoffe freisetzt und das Krankheitsbild verschlimmern kann.<br> Bei massiven Durchfällen ist der Ausgleich des Salz- und Flüssigkeitsverlustes die wichtigste therapeutische Maßnahme. Schwere Krankheitsverläufe sind im Krankenhaus zu behandeln, damit auftretende Komplikationen, insbesondere bei empfindlichen Personen (Säuglinge, Kleinkinder, alte Menschen, abwehrgeschwächte Personen), rechtzeitig erkannt und behandelt werden können. <b>Antikörper helfen bei HUS</b><br> Der schwere Verlauf einer EHEC-Infektion, das sogenannte Hämolytisch-urämische Syndrom (HUS), lässt sich erfolgreich mit Antikörpern behandeln. Im letzten Jahr konnten drei Kleinkinder, die mit dem aggressiven Durchfallerreger infiziert hatten, durch die Gabe von monoklonalen Antikörpern geheilt werden. Die dreijährigen Kinder litten infolge der EHEC-Infektion an akutem Nierenversagen und mussten an eine Dialyse. Da ein mehrmaliger Austausch des Blutplasmas ohne Wirkung blieb, entschloß sich Prof. Franz Schaefer vom Zentrum für Kinder- und Jugendmedizin am Universitätsklinikum Heidelberg zu einem Behandlungsversuch mit Eculizumab. Schnelle Heilung:<br> Eculizumab ist ein monoklonaler Antikörper, der seit 2007 zur Behandlung einer seltenen Blutkrankheit sowie einer seltenen angeborenen Form von HUS zugelassen ist. Schaefer und Kollegen konnten zeigen, dass das Medikament auch beim durch EHEC verursachten hämolytisch-urämischen Syndrom helfen kann. Die Kinder erhielten zwei bis drei Infusionen mit Eculizumab im Abstand von sieben Tagen. Schon innerhalb von 24 Stunden nach der ersten Infusion verbesserte sich der Zustand der Kleinen dramatisch: Die Blutwerte normalisierten sich. Die Nieren gewannen ihre Funktionsfähigkeit zurück. Alle drei Kinder gesundeten und zeigten keine Folgeschäden. ==Quellen== http://www.lgl.bayern.de/gesundheit/ehec.htm<br> http://www.hplanglotz.de/keine-panik-vor-ehec-ansteckung<br> http://www.hplanglotz.de/ehec-infektion-antikorper-helfen-bei-hus<br> http://www.proplanta.de/Agrar-Nachrichten/Verbraucher/EHEC-Uebertragung-Lebensmittel-Tiere-oder-doch-Menschen_article1306866616.html<br> 1bde7e9ea69ba188ac291ed2f70266de5507f463 Windows Internet Explorer auf Desktop 0 103 208 2011-08-08T09:41:08Z Satria 1 Die Seite wurde neu angelegt: „Es kommt vor, da verschwindet das blaue e-Symbol, der Internet Explorer vom Desktop. Einfach eine Verknüpfung mit der ''iexplore.exe'' dort anzulegen ist nicht d…“ wikitext text/x-wiki Es kommt vor, da verschwindet das blaue e-Symbol, der Internet Explorer vom Desktop. Einfach eine Verknüpfung mit der ''iexplore.exe'' dort anzulegen ist nicht dasselbe, weil diese nicht das gleiche Kontextmenü bietet, wie das "echte" Symbol, wie z.B. dass die "Eigenschaften" des Symbols direkt die Internetoptionen öffnen. Per Regedit (oder aber auch TweakUI) lässt sich das Symbol jedoch wieder sichtbar machen. Regedit hat jeder, darum hier, wie es damit geht:<br> In <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel</pre> den Schlüssel <pre>{871C5380-42A0-1069-A2EA-08002B30309D}</pre> suchen oder ihn anlegen vom Typ '''REG_DWORD'''. Dann den Wert 0 vergeben. Desktop aktualisieren (F5). Fertig! 795aca215051e329fe7fea41e9a502f3a4c80c14 Autobatterie 0 49 209 109 2011-08-16T12:19:39Z Satria 1 wikitext text/x-wiki Auch "Starterbatterie" genannt, weil sie nämlich (neben der Versorgung der elektrischen Verbraucher bei ausgeschaltetem Motor) NUR zum Anlassen (Starten) des Motors benötigt wird.<br> Läuft der Motor, übernimmt die Lichtmaschine als Stromgenerator die Versorgung des kompletten Kfz mit Strom und lädt noch dazu die Batterie wieder auf. Bei Autobatterien gibt es neben verschiedenen Pol-Formen (rund, flach) auch noch unterschiedliche Polanordnungen: Polanordnung 0: <pre> ------------- | | | | | - + | ------------- </pre> Polanordnung 1: <pre> ------------- | | | | | + - | ------------- </pre> Etwas exotischer: Polanordnung 3: <pre> ------------- | - | | | | + | ------------- </pre> Polanordnung 4: <pre> ------------- | - | | | | + | ------------- </pre> Die Polanordnung kann entscheidend darüber sein, wie gut sich eine Batterie im Kfz verbauen lässt. In den meisten Fällen erlauben enge Bauweisen und knapp bemessene Kabel nur eine bestimmte Polanordnung im jeweiligen Kfz. c9d915c36bfc6caab01987d8a9b5be746e2ac546 FTP 0 104 211 2011-08-22T13:52:17Z Satria 1 Die Seite wurde neu angelegt: „==Bedeutung und Bestimmung== File Transfer Protocol. Wird dazu verwendet, Dateien über ein TCP/IP Netz (z.B. Internet) zu transportieren. Beteiligte sind immer e…“ wikitext text/x-wiki ==Bedeutung und Bestimmung== File Transfer Protocol. Wird dazu verwendet, Dateien über ein TCP/IP Netz (z.B. Internet) zu transportieren. Beteiligte sind immer ein FTP Server und ein oder mehrere FTP Client(s). ==Secure FTP== Um der falschen Verwendung der Abkürzung entgegen zu wirken, hier eine sehr schöne aufklärende Zusammenfassung:<br> Communication protocols Basically, there are the following file transfer protocols around: FTP – the plain old FTP protocol that has been around since 1970s. The acronym stands for "File Transfer Protocol". It usually runs over TCP port 21. SFTP – another, completely different file transfer protocol that has nothing to do with FTP. SFTP runs over an SSH session, usually on TCP port 22. It has been around since late 1990s. The acronym actually stands for "SSH File Transfer Protocol". SCP – a variant of BSD rcp utility that transfers files over SSH session. The SCP protocol has been mostly superseded by the more comprehensive SFTP protocol and some implementations of the "scp" utility actually use SFTP instead. Secure communication layers Additionally, there are the following two secure communication layers: SSH – a protocol that allows establishing a secure channel between the local and the remote computer. Server as an underlying channel for associated protocols such as secure shell, port forwarding, SFTP or SCP. While it is possible to run the (slightly modified) plain old FTP protocol over SSH, this is not very common, fortunately. File transfer over SSH is nearly always done using SFTP or SCP. TLS – this is almost generally known primarily by its old name - SSL - and provides a way of securing otherwise unsecure protocols such as HTTP, SMTP, POP3 or FTP. Please note that SSL 3.1 is called TLS 1.0, and therefore TLS 1.0 is a newer version of the protocol than SSL 3.0, despite the lower version number. HTTP over SSL is often called HTTPS, and FTP over SSL is often called FTPS and has two variants, explicit (starts as an unencrypted FTP session and is secured on client request) and implicit (is secured right from the beginning and therefore needs a separate TCP port, usually 990). The implicit mode is deprecated, but still widely used. Secure file transfer protocols, or fitting it all together In an ideal world, the information above should be just enough. Unfortunately, this is not the case. The file transfer protocols are also referred to by other names, and even the names that only refer to a one single protocol are often mistakenly used for the wrong protocol by (understandably) confused authors. FTP – should be only used for the plain old FTP protocol. SFTP – should be only used for SFTP, the SSH file transfer protocol. However, people often shorten Secure FTP into SFTP - this is not correct, because the S in SFTP does not stand for Secure, but for SSH. SFTP2 – this confusing name is used by some vendors to highligh the obvious fact that their SFTP protocol runs over SSH2. For all practical purposes, consider this to be a synonym of SFTP, because SSH1 has been deprecated for many years. Secure FTP – this name is the most confusing, because it is used to refer to either of the two different protocols. Whenever this name is used, it is necessary to specify whether the SSH-based or SSL-based file transfer protocol is meant. SSH FTP, FTP over SSH – fortunately, these names are not used very often. They usually refer to SFTP, the SSH file transfer protocol. Even though it is possible to run the (slightly modified) plain old FTP protocol over SSH, this is not very common. FTP/SSL, FTP/TLS, FTP over SSL, FTP over TLS, FTPS – should be only used for FTP over TLS/SSL. SFTP over SSL – although the SFTP protocol can utilize any underlying data stream, in practice SFTP over anything other that SSH is very rare. It is much more likely the term was used by mistake in place of either "SFTP over SSH" or "FTP over SSL". SCP – should be only used for scp protocol/utility, a variant of BSD rcp. Some applications with SCP in its name now use SFTP by default instead - examples of this practice are WinSCP application and scp2 utility. TFTP is yet another file transfer protocol different from any of above. ==Quellen== http://www.rebex.net/kb/secure-ftp.aspx c1e20921aeac9ace0768df5992fcab7dfe91d21f 212 211 2011-08-22T13:55:25Z Satria 1 /* Secure FTP */ wikitext text/x-wiki ==Bedeutung und Bestimmung== File Transfer Protocol. Wird dazu verwendet, Dateien über ein TCP/IP Netz (z.B. Internet) zu transportieren. Beteiligte sind immer ein FTP Server und ein oder mehrere FTP Client(s). ==Secure FTP== Um der falschen Verwendung der Abkürzung entgegen zu wirken, hier eine sehr schöne aufklärende Zusammenfassung:<br> <h2>Communication protocols</h2> Basically, there are the following file transfer protocols around: '''FTP''' – the plain old FTP protocol that has been around since 1970s. The acronym stands for "File Transfer Protocol". It usually runs over TCP port 21. '''SFTP''' – another, completely different file transfer protocol that has nothing to do with FTP. SFTP runs over an SSH session, usually on TCP port 22. It has been around since late 1990s. The acronym actually stands for "SSH File Transfer Protocol". '''SCP''' – a variant of BSD rcp utility that transfers files over SSH session. The SCP protocol has been mostly superseded by the more comprehensive SFTP protocol and some implementations of the "scp" utility actually use SFTP instead. Secure communication layers <h2>Additionally, there are the following two secure communication layers:</h2> '''SSH''' – a protocol that allows establishing a secure channel between the local and the remote computer. Server as an underlying channel for associated protocols such as secure shell, port forwarding, SFTP or SCP. While it is possible to run the (slightly modified) plain old FTP protocol over SSH, this is not very common, fortunately. File transfer over SSH is nearly always done using SFTP or SCP. '''TLS''' – this is almost generally known primarily by its old name - SSL - and provides a way of securing otherwise unsecure protocols such as HTTP, SMTP, POP3 or FTP. Please note that SSL 3.1 is called TLS 1.0, and therefore TLS 1.0 is a newer version of the protocol than SSL 3.0, despite the lower version number. HTTP over SSL is often called HTTPS, and FTP over SSL is often called FTPS and has two variants, explicit (starts as an unencrypted FTP session and is secured on client request) and implicit (is secured right from the beginning and therefore needs a separate TCP port, usually 990). The implicit mode is deprecated, but still widely used. <h2>Secure file transfer protocols, or fitting it all together</h2> In an ideal world, the information above should be just enough. Unfortunately, this is not the case. The file transfer protocols are also referred to by other names, and even the names that only refer to a one single protocol are often mistakenly used for the wrong protocol by (understandably) confused authors. '''FTP''' – should be only used for the plain old FTP protocol. '''SFTP''' – should be only used for SFTP, the SSH file transfer protocol. However, people often shorten Secure FTP into SFTP - this is not correct, because the S in SFTP does not stand for Secure, but for SSH. '''SFTP2''' – this confusing name is used by some vendors to highligh the obvious fact that their SFTP protocol runs over SSH2. For all practical purposes, consider this to be a synonym of SFTP, because SSH1 has been deprecated for many years. '''Secure FTP''' – this name is the most confusing, because it is used to refer to either of the two different protocols. Whenever this name is used, it is necessary to specify whether the SSH-based or SSL-based file transfer protocol is meant. '''SSH FTP, FTP over SSH''' – fortunately, these names are not used very often. They usually refer to SFTP, the SSH file transfer protocol. Even though it is possible to run the (slightly modified) plain old FTP protocol over SSH, this is not very common. '''FTP/SSL, FTP/TLS, FTP over SSL, FTP over TLS, FTPS''' – should be only used for FTP over TLS/SSL. '''SFTP over SSL''' – although the SFTP protocol can utilize any underlying data stream, in practice SFTP over anything other that SSH is very rare. It is much more likely the term was used by mistake in place of either "SFTP over SSH" or "FTP over SSL". '''SCP''' – should be only used for scp protocol/utility, a variant of BSD rcp. Some applications with SCP in its name now use SFTP by default instead - examples of this practice are WinSCP application and scp2 utility. '''TFTP''' is yet another file transfer protocol different from any of above. ==Quellen== http://www.rebex.net/kb/secure-ftp.aspx 9999d6c398940ad0725868e1969854fbdccb6c00 213 212 2011-08-22T13:56:30Z Satria 1 wikitext text/x-wiki ==Bedeutung und Bestimmung== File Transfer Protocol. Wird dazu verwendet, Dateien über ein TCP/IP Netz (z.B. Internet) zu transportieren. Beteiligte sind immer ein FTP Server und ein oder mehrere FTP Client(s). ==Secure FTP== Um der falschen Verwendung der Abkürzung entgegen zu wirken, hier eine sehr schöne aufklärende Zusammenfassung:<br> ===Communication protocols=== Basically, there are the following file transfer protocols around: '''FTP''' – the plain old FTP protocol that has been around since 1970s. The acronym stands for "File Transfer Protocol". It usually runs over TCP port 21. '''SFTP''' – another, completely different file transfer protocol that has nothing to do with FTP. SFTP runs over an SSH session, usually on TCP port 22. It has been around since late 1990s. The acronym actually stands for "SSH File Transfer Protocol". '''SCP''' – a variant of BSD rcp utility that transfers files over SSH session. The SCP protocol has been mostly superseded by the more comprehensive SFTP protocol and some implementations of the "scp" utility actually use SFTP instead. Secure communication layers ===Additionally, there are the following two secure communication layers:=== '''SSH''' – a protocol that allows establishing a secure channel between the local and the remote computer. Server as an underlying channel for associated protocols such as secure shell, port forwarding, SFTP or SCP. While it is possible to run the (slightly modified) plain old FTP protocol over SSH, this is not very common, fortunately. File transfer over SSH is nearly always done using SFTP or SCP. '''TLS''' – this is almost generally known primarily by its old name - SSL - and provides a way of securing otherwise unsecure protocols such as HTTP, SMTP, POP3 or FTP. Please note that SSL 3.1 is called TLS 1.0, and therefore TLS 1.0 is a newer version of the protocol than SSL 3.0, despite the lower version number. HTTP over SSL is often called HTTPS, and FTP over SSL is often called FTPS and has two variants, explicit (starts as an unencrypted FTP session and is secured on client request) and implicit (is secured right from the beginning and therefore needs a separate TCP port, usually 990). The implicit mode is deprecated, but still widely used. ===Secure file transfer protocols, or fitting it all together=== In an ideal world, the information above should be just enough. Unfortunately, this is not the case. The file transfer protocols are also referred to by other names, and even the names that only refer to a one single protocol are often mistakenly used for the wrong protocol by (understandably) confused authors. '''FTP''' – should be only used for the plain old FTP protocol. '''SFTP''' – should be only used for SFTP, the SSH file transfer protocol. However, people often shorten Secure FTP into SFTP - this is not correct, because the S in SFTP does not stand for Secure, but for SSH. '''SFTP2''' – this confusing name is used by some vendors to highligh the obvious fact that their SFTP protocol runs over SSH2. For all practical purposes, consider this to be a synonym of SFTP, because SSH1 has been deprecated for many years. '''Secure FTP''' – this name is the most confusing, because it is used to refer to either of the two different protocols. Whenever this name is used, it is necessary to specify whether the SSH-based or SSL-based file transfer protocol is meant. '''SSH FTP, FTP over SSH''' – fortunately, these names are not used very often. They usually refer to SFTP, the SSH file transfer protocol. Even though it is possible to run the (slightly modified) plain old FTP protocol over SSH, this is not very common. '''FTP/SSL, FTP/TLS, FTP over SSL, FTP over TLS, FTPS''' – should be only used for FTP over TLS/SSL. '''SFTP over SSL''' – although the SFTP protocol can utilize any underlying data stream, in practice SFTP over anything other that SSH is very rare. It is much more likely the term was used by mistake in place of either "SFTP over SSH" or "FTP over SSL". '''SCP''' – should be only used for scp protocol/utility, a variant of BSD rcp. Some applications with SCP in its name now use SFTP by default instead - examples of this practice are WinSCP application and scp2 utility. '''TFTP''' is yet another file transfer protocol different from any of above. ==Quellen== http://www.rebex.net/kb/secure-ftp.aspx f6d1c20e637886a086677fd99161c580f1324131 USB BootStick (alt) 0 79 214 166 2011-09-27T09:08:00Z Satria 1 Verfeinerung wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist keine Schritt-für-Schritt Anleitung für Anfänger! == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * [http://simplux.org/siblo/ SIBLO Boot Loader] * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [Das Programm HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk laden zu können und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" schon '''IN''' der ISO Datei befinden muss! == Vorbereiten des USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! 0c36021078d6d752dc78cbb8d70510e364e11967 215 214 2011-09-27T09:10:18Z Satria 1 URL für SIBLO ist veraltet. wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist keine Schritt-für-Schritt Anleitung für Anfänger! == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * SIBLO Boot Loader ( ehemals http://simplux.org/siblo/ , inzwischen muss aber gegoogled werden :( ) * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [Das Programm HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk laden zu können und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" schon '''IN''' der ISO Datei befinden muss! == Vorbereiten des USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! 195c86cb60e081c36baaf79ff43690476b65a516 652 215 2012-01-17T12:17:22Z Satria 1 wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird jeweils <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist <u>keine</u> Schritt-für-Schritt Anleitung für Anfänger! = Grundsätzliches = == Über USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden, falls sie es nicht bereits nach dem Formatieren ist. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. = Windows Bootstick = == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * SIBLO Boot Loader ( ehemals http://simplux.org/siblo/ , inzwischen muss aber gegoogled werden :( ) * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk laden zu können und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" schon '''IN''' der ISO Datei befinden muss! == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Es sollte noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! = DOS Bootstick = Trotz längst vergangenen DOS Zeiten, kann es notwendig sein, doch noch ein mal dieses alte Betriebssystem zu starten. Zum Beispiel erfordern das memtest86+ und zahlreiche Festplatten Diagnose Tools, wie HDAT2 aber auch Hersteller tools, die zum Feststellen eines Defektes an der Platte und einem damit verbundenen Garantieanspruch zum Einsatz kommen. == Benötigte Software == * [http://vfd.sourceforge.net/ Virtual Floppy Drive] * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Um einen DOS Bootstick zu bekommen, sind nur wenige Schritte nötig. Ich gehe hier den Weg über ein Floppy Laufwerk oder eher über ein virtuelles Floppy Laufwerk, das geht schneller. == DOS boot Floppy Disk erzeugen == Mit Hilfe von VFD wird ein virtuelles Diskettenlaufwerk erzeugt, bei dem es für unsere Zwecke egal ist, wo das .img file angelegt wird. Es ist nur Mittel zum Zweck.<br> Beim Formatieren des virtuellen Diskettenlaufwerks mit Windows setzt man das Häkchen bei "MS-DOS Startdiskette erstellen". Von dieser Diskette könnte man den Rechner jetzt in ein DOS booten. == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Dabei wird das Häkchen bei "Create a DOS startup disk" gesetzt! Bei "using DOS system files located at" wählen wir das (VFD) Laufwerk aus, das wir im vorigen Schritt als DOS Startdiskette formatiert haben haben. Es sollte anschließend noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Von dem USB Stick kann jetzt schon das DOS gebootet werden. == Letzte Schritte == Der Bootstick kann jetzt konfiguriert werden, was bedeutet, dass die CONFIG.SYS und AUTOEXEC.BAT nach eigenen Bedürfnissen angepasst werden, unnötige Dateien gelöscht und die gewünschten Tools drauf kopiert werden können. Dateien, die natürlich unbedingt auf dem Stick bleiben müssen:<br> IO.SYS<br> MSDOS.SYS<br> COMMAND.COM<br> Fertig ist der DOS Bootstick. 101594f99343189a0bd33b5f58a39e350ac64d9d 653 652 2012-01-17T12:17:59Z Satria 1 /* DOS Bootstick */ wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird jeweils <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist <u>keine</u> Schritt-für-Schritt Anleitung für Anfänger! = Grundsätzliches = == Über USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden, falls sie es nicht bereits nach dem Formatieren ist. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. = Windows Bootstick = == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * SIBLO Boot Loader ( ehemals http://simplux.org/siblo/ , inzwischen muss aber gegoogled werden :( ) * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk laden zu können und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" schon '''IN''' der ISO Datei befinden muss! == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Es sollte noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! = DOS Bootstick = Trotz längst vergangenen DOS Zeiten, kann es notwendig sein, doch noch einmal dieses alte Betriebssystem zu starten. Zum Beispiel erfordern das memtest86+ und zahlreiche Festplatten Diagnose Tools, wie HDAT2 aber auch Hersteller tools, die zum Feststellen eines Defektes an der Platte und einem damit verbundenen Garantieanspruch zum Einsatz kommen. == Benötigte Software == * [http://vfd.sourceforge.net/ Virtual Floppy Drive] * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Um einen DOS Bootstick zu bekommen, sind nur wenige Schritte nötig. Ich gehe hier den Weg über ein Floppy Laufwerk oder eher über ein virtuelles Floppy Laufwerk, das geht schneller. == DOS boot Floppy Disk erzeugen == Mit Hilfe von VFD wird ein virtuelles Diskettenlaufwerk erzeugt, bei dem es für unsere Zwecke egal ist, wo das .img file angelegt wird. Es ist nur Mittel zum Zweck.<br> Beim Formatieren des virtuellen Diskettenlaufwerks mit Windows setzt man das Häkchen bei "MS-DOS Startdiskette erstellen". Von dieser Diskette könnte man den Rechner jetzt in ein DOS booten. == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Dabei wird das Häkchen bei "Create a DOS startup disk" gesetzt! Bei "using DOS system files located at" wählen wir das (VFD) Laufwerk aus, das wir im vorigen Schritt als DOS Startdiskette formatiert haben haben. Es sollte anschließend noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Von dem USB Stick kann jetzt schon das DOS gebootet werden. == Letzte Schritte == Der Bootstick kann jetzt konfiguriert werden, was bedeutet, dass die CONFIG.SYS und AUTOEXEC.BAT nach eigenen Bedürfnissen angepasst werden, unnötige Dateien gelöscht und die gewünschten Tools drauf kopiert werden können. Dateien, die natürlich unbedingt auf dem Stick bleiben müssen:<br> IO.SYS<br> MSDOS.SYS<br> COMMAND.COM<br> Fertig ist der DOS Bootstick. cfaecec8723fbb7dc1be7b1d8913685c38cb1895 654 653 2012-01-17T12:19:00Z Satria 1 /* Zusammenfassung */ wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird jeweils <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist <u>keine</u> Schritt-für-Schritt Anleitung für Anfänger! = Grundsätzliches = == Über USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden, falls sie es nicht bereits nach dem Formatieren ist. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. = Windows Bootstick = == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * SIBLO Boot Loader ( ehemals http://simplux.org/siblo/ , inzwischen muss aber gegoogled werden :( ) * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk laden zu können und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" schon '''IN''' der ISO Datei befinden muss! == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Es sollte noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! = DOS Bootstick = Trotz längst vergangenen DOS Zeiten, kann es notwendig sein, doch noch einmal dieses alte Betriebssystem zu starten. Zum Beispiel erfordern das memtest86+ und zahlreiche Festplatten Diagnose Tools, wie HDAT2 aber auch Hersteller tools, die zum Feststellen eines Defektes an der Platte und einem damit verbundenen Garantieanspruch zum Einsatz kommen. == Benötigte Software == * [http://vfd.sourceforge.net/ Virtual Floppy Drive] * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Um einen DOS Bootstick zu bekommen, sind nur wenige Schritte nötig. Ich gehe hier den Weg über ein Diskettenaufwerk oder eher über ein virtuelles Laufwerk (VirtualFloppyDrive), weil das schneller geht. == DOS boot Floppy Disk erzeugen == Mit Hilfe von VFD wird ein virtuelles Diskettenlaufwerk erzeugt, bei dem es für unsere Zwecke egal ist, wo das .img file angelegt wird. Es ist nur Mittel zum Zweck.<br> Beim Formatieren des virtuellen Diskettenlaufwerks mit Windows setzt man das Häkchen bei "MS-DOS Startdiskette erstellen". Von dieser Diskette könnte man den Rechner jetzt in ein DOS booten. == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Dabei wird das Häkchen bei "Create a DOS startup disk" gesetzt! Bei "using DOS system files located at" wählen wir das (VFD) Laufwerk aus, das wir im vorigen Schritt als DOS Startdiskette formatiert haben haben. Es sollte anschließend noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Von dem USB Stick kann jetzt schon das DOS gebootet werden. == Letzte Schritte == Der Bootstick kann jetzt konfiguriert werden, was bedeutet, dass die CONFIG.SYS und AUTOEXEC.BAT nach eigenen Bedürfnissen angepasst werden, unnötige Dateien gelöscht und die gewünschten Tools drauf kopiert werden können. Dateien, die natürlich unbedingt auf dem Stick bleiben müssen:<br> IO.SYS<br> MSDOS.SYS<br> COMMAND.COM<br> Fertig ist der DOS Bootstick. b9e9dc5f65a62ec33b2ca26770b20cdea04c47ca 655 654 2012-01-17T12:19:21Z Satria 1 /* DOS boot Floppy Disk erzeugen */ wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird jeweils <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist <u>keine</u> Schritt-für-Schritt Anleitung für Anfänger! = Grundsätzliches = == Über USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden, falls sie es nicht bereits nach dem Formatieren ist. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. = Windows Bootstick = == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * SIBLO Boot Loader ( ehemals http://simplux.org/siblo/ , inzwischen muss aber gegoogled werden :( ) * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk laden zu können und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" schon '''IN''' der ISO Datei befinden muss! == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Es sollte noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! = DOS Bootstick = Trotz längst vergangenen DOS Zeiten, kann es notwendig sein, doch noch einmal dieses alte Betriebssystem zu starten. Zum Beispiel erfordern das memtest86+ und zahlreiche Festplatten Diagnose Tools, wie HDAT2 aber auch Hersteller tools, die zum Feststellen eines Defektes an der Platte und einem damit verbundenen Garantieanspruch zum Einsatz kommen. == Benötigte Software == * [http://vfd.sourceforge.net/ Virtual Floppy Drive] * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Um einen DOS Bootstick zu bekommen, sind nur wenige Schritte nötig. Ich gehe hier den Weg über ein Diskettenaufwerk oder eher über ein virtuelles Laufwerk (VirtualFloppyDrive), weil das schneller geht. == DOS Bootdisk erzeugen == Mit Hilfe von VFD wird ein virtuelles Diskettenlaufwerk erzeugt, bei dem es für unsere Zwecke egal ist, wo das .img file angelegt wird. Es ist nur Mittel zum Zweck.<br> Beim Formatieren des virtuellen Diskettenlaufwerks mit Windows setzt man das Häkchen bei "MS-DOS Startdiskette erstellen". Von dieser Diskette könnte man den Rechner jetzt in ein DOS booten. == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Dabei wird das Häkchen bei "Create a DOS startup disk" gesetzt! Bei "using DOS system files located at" wählen wir das (VFD) Laufwerk aus, das wir im vorigen Schritt als DOS Startdiskette formatiert haben haben. Es sollte anschließend noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Von dem USB Stick kann jetzt schon das DOS gebootet werden. == Letzte Schritte == Der Bootstick kann jetzt konfiguriert werden, was bedeutet, dass die CONFIG.SYS und AUTOEXEC.BAT nach eigenen Bedürfnissen angepasst werden, unnötige Dateien gelöscht und die gewünschten Tools drauf kopiert werden können. Dateien, die natürlich unbedingt auf dem Stick bleiben müssen:<br> IO.SYS<br> MSDOS.SYS<br> COMMAND.COM<br> Fertig ist der DOS Bootstick. 3fed9849fa48b91b813d1e29cb2f5b998eec266a 656 655 2012-01-17T12:19:48Z Satria 1 /* Zusammenfassung */ wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird jeweils <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist <u>keine</u> Schritt-für-Schritt Anleitung für Anfänger! = Grundsätzliches = == Über USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden, falls sie es nicht bereits nach dem Formatieren ist. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. = Windows Bootstick = == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * SIBLO Boot Loader ( ehemals http://simplux.org/siblo/ , inzwischen muss aber gegoogled werden :( ) * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk laden zu können und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" schon '''IN''' der ISO Datei befinden muss! == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Es sollte noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! = DOS Bootstick = Trotz längst vergangenen DOS Zeiten, kann es notwendig sein, doch noch einmal dieses alte Betriebssystem zu starten. Zum Beispiel erfordern das memtest86+ und zahlreiche Festplatten Diagnose Tools, wie HDAT2 aber auch Hersteller tools, die zum Feststellen eines Defektes an der Platte und einem damit verbundenen Garantieanspruch zum Einsatz kommen. == Benötigte Software == * [http://vfd.sourceforge.net/ Virtual Floppy Drive] * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Um einen DOS Bootstick zu bekommen, sind nur wenige Schritte nötig. Ich gehe hier den Weg über ein Diskettenaufwerk oder eher über ein virtuelles Laufwerk (VirtualFloppyDrive, VFD), weil das schneller geht. == DOS Bootdisk erzeugen == Mit Hilfe von VFD wird ein virtuelles Diskettenlaufwerk erzeugt, bei dem es für unsere Zwecke egal ist, wo das .img file angelegt wird. Es ist nur Mittel zum Zweck.<br> Beim Formatieren des virtuellen Diskettenlaufwerks mit Windows setzt man das Häkchen bei "MS-DOS Startdiskette erstellen". Von dieser Diskette könnte man den Rechner jetzt in ein DOS booten. == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Dabei wird das Häkchen bei "Create a DOS startup disk" gesetzt! Bei "using DOS system files located at" wählen wir das (VFD) Laufwerk aus, das wir im vorigen Schritt als DOS Startdiskette formatiert haben haben. Es sollte anschließend noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Von dem USB Stick kann jetzt schon das DOS gebootet werden. == Letzte Schritte == Der Bootstick kann jetzt konfiguriert werden, was bedeutet, dass die CONFIG.SYS und AUTOEXEC.BAT nach eigenen Bedürfnissen angepasst werden, unnötige Dateien gelöscht und die gewünschten Tools drauf kopiert werden können. Dateien, die natürlich unbedingt auf dem Stick bleiben müssen:<br> IO.SYS<br> MSDOS.SYS<br> COMMAND.COM<br> Fertig ist der DOS Bootstick. 9b8d345891388635e72de937478110ebedb57323 Meine Fragen 0 27 221 96 2011-10-26T13:45:37Z Satria 1 wikitext text/x-wiki ;Mars:Man sagt, der Mars habe sein Wasser verloren, weil seine Rotationsachse sich stark in Richtung Sonne neigen kann, und daher der sonnenzugewandte Pol sehr heiß werden kann, dass das Wasser verdampft ist. Aber wohin soll das Wasser denn geflogen sein? Auch gasförmiges Wasser wird doch immer noch von der Planetenschwerkraft angezogen oder etwa nicht. Die fehlende Atmosphäre auf dem Mars kann dem Wasserdampf zudem noch keinen Auftrieb geben, also wo soll es hin? ;Sahara:Warum ist eine Wüste eine Wüste?<br>Was befindet sich unter dem Sand? ;Tunnel durch den Erdmittelpunkt:Der Mittelpunkt der Erde ist ja auch das Gravitationszentrum. Alles wird in Richtung dieses Zentrums angezogen. Gäbe es jetzt einen Tunnel von der einen Seite der Erde durch das Zentrum bis zum anderen Ende, würde man dann in diesem Tunnel hin und her pendeln bis zum Stillstand?<br>Man kann ja dann nicht mehr in Richtung des Zentrums fallen, weil die gesamte Masse, die das Gravitationsfeld erzeugt um einen herum wäre :) Zieht es den Körper dann auch (spürbar) auseinander? Gäbe es in diesem Tunnel dann Luft? Abgesehen davon, dass man die Lava irgendwie zurückhalten müsste :-P a18be4eaeba387deeba6e84a980ce6a0a679ff47 MySQL Foreign Keys 0 110 223 2011-11-02T10:07:59Z Satria 1 Die Seite wurde neu angelegt: „Foreign Keys auch "Fremdschlüssel" genannt, sind in MySQL nicht per phpMyAdmin (der üblichen Administrationsoberfläche für MySQL) zu konfigurieren. Man muss …“ wikitext text/x-wiki Foreign Keys auch "Fremdschlüssel" genannt, sind in MySQL nicht per phpMyAdmin (der üblichen Administrationsoberfläche für MySQL) zu konfigurieren. Man muss die Tabelle, die Fremdschlüssel aus anderen Tabellen referenziert, nach dem Erstellen manuell per SQL Kommando verändern. Das geht so: <pre> ALTER TABLE `ReferencingTable` ADD CONSTRAINT `SomeConstraintName1` FOREIGN KEY (`ColumnWithForeignKey1`) REFERENCES `ReferencedTable1` (`PrimaryKey`) ON DELETE CASCADE, ADD CONSTRAINT `SomeConstraintName1` FOREIGN KEY (`ColumnWithForeignKey2`) REFERENCES `ReferencedTable2` (`PrimaryKey`) ON DELETE CASCADE; </pre> dedec4a9dc2cea84eb7e2aa06b52740387d044ba 224 223 2011-11-02T10:08:17Z Satria 1 wikitext text/x-wiki Foreign Keys auch "Fremdschlüssel" genannt, sind in MySQL nicht per phpMyAdmin (der üblichen Administrationsoberfläche für MySQL) zu konfigurieren. Man muss die Tabelle, die Fremdschlüssel aus anderen Tabellen referenziert, nach dem Erstellen manuell per SQL Kommando verändern. Das geht so: <pre> ALTER TABLE `ReferencingTable` ADD CONSTRAINT `SomeConstraintName1` FOREIGN KEY (`ColumnWithForeignKey1`) REFERENCES `ReferencedTable1` (`PrimaryKey`) ON DELETE CASCADE, ADD CONSTRAINT `SomeConstraintName1` FOREIGN KEY (`ColumnWithForeignKey2`) REFERENCES `ReferencedTable2` (`PrimaryKey`) ON DELETE CASCADE, ...; </pre> 5ebcecef7344519715bf543bd1ab5d0a57606b6d 225 224 2011-11-02T10:13:28Z Satria 1 wikitext text/x-wiki Foreign Keys auch "Fremdschlüssel" genannt, sind in MySQL nicht per phpMyAdmin (der üblichen Administrationsoberfläche für MySQL) zu konfigurieren. Man muss die Tabelle, die Primärschlüssel aus anderen Tabellen als Fremdschlüssel referenziert, nach dem Erstellen manuell per SQL Kommando verändern, und außerdem müssen die betreffenden Tabellen InnoDB Tabellen sein. MyISAM unterstützt keine Foreign Key Constraints. Das geht so: <pre> ALTER TABLE `ReferencingTable` ADD CONSTRAINT `SomeConstraintName1` FOREIGN KEY (`ColumnWithForeignKey1`) REFERENCES `ReferencedTable1` (`PrimaryKey`) ON DELETE CASCADE, ADD CONSTRAINT `SomeConstraintName1` FOREIGN KEY (`ColumnWithForeignKey2`) REFERENCES `ReferencedTable2` (`PrimaryKey`) ON DELETE CASCADE, ...; </pre> ==Quellen== http://dev.mysql.com/doc/refman/5.1/de/innodb-foreign-key-constraints.html 1a8926d44c08bc60eac3d6b6548163671097c5f6 226 225 2011-11-02T10:14:26Z Satria 1 wikitext text/x-wiki In MySQL Datenbanken sind Foreign Keys auch "Fremdschlüssel" genannt, über phpMyAdmin (der üblichen Administrationsoberfläche für MySQL) nicht per Menü zu konfigurieren. Man muss die Tabelle, die Primärschlüssel aus anderen Tabellen als Fremdschlüssel referenziert, nach dem Erstellen manuell per SQL Kommando verändern, und außerdem müssen die betreffenden Tabellen InnoDB Tabellen sein. MyISAM unterstützt keine Foreign Key Constraints. Das geht so: <pre> ALTER TABLE `ReferencingTable` ADD CONSTRAINT `SomeConstraintName1` FOREIGN KEY (`ColumnWithForeignKey1`) REFERENCES `ReferencedTable1` (`PrimaryKey`) ON DELETE CASCADE, ADD CONSTRAINT `SomeConstraintName1` FOREIGN KEY (`ColumnWithForeignKey2`) REFERENCES `ReferencedTable2` (`PrimaryKey`) ON DELETE CASCADE, ...; </pre> ==Quellen== http://dev.mysql.com/doc/refman/5.1/de/innodb-foreign-key-constraints.html 73e632045ae2a1899da255f0605f39d4e3f862e9 XWing Alliance screen resolutions 0 186 304 2011-12-11T23:26:35Z Satria 1 Die Seite wurde neu angelegt: „Man kann die voreingestellten Auflösungen verändern, was besonders nützlich ist, wenn man eine widescreen-Auflösung fahren möchte. Es muss die XWINGALLIANCE…“ wikitext text/x-wiki Man kann die voreingestellten Auflösungen verändern, was besonders nützlich ist, wenn man eine widescreen-Auflösung fahren möchte. Es muss die XWINGALLIANCE.EXE per Hex-Editor geöffnet werden. Die aufgeführten Offsets gelten für die letzte Version der EXE Datei.<br> <table> <th>Index in Config.cfg</th> <th>Auflösung (AxB)</th> <th>Auflösung in Hex in der Datei</th> <th>Offset für A</th> <th>Offset für B</th> <tr> <td>1</td> <td>800x600</td> <td>2003 5802</td> <td></td> <td></td> </tr> <tr> <td>2</td> <td>1024x768</td> <td>0004 0003</td> <td>1090324</td> <td>1090396</td> </tr> <tr> <td>3</td> <td>1152x864</td> <td>8004 6003</td> <td>1090429</td> <td>1090434</td> </tr> <tr> <td>4</td> <td>1280x1024</td> <td>0005 0004</td> <td>1090324</td> <td>1090463</td> </tr> <tr> <td>5</td> <td>1600x1200</td> <td>4006 B004 <td>1090492</td> <td>1090497</td> </tr> </table> Eine Auflösung, auf die man verzichten kann, wird mit den gewünschten Werten an der korrekten Stelle überschrieben. Der Indexwert wird in der Config.cfg als "screenres1" und "screenres2" gesetzt. Beispiel:<br> Überschreibt man die Auflösung 1152x864 (80 04 00 00 B9 60 03) mit den Hex-Werten _90 06_ 00 00 B9 _38 04_, sehen die Zeilen der Config.cfg wie folgt aus: <pre> screenres1 3 screenres2 3 </pre> 28e762b01418ce3e6e7f81d8e1b94569c8415b10 305 304 2011-12-11T23:27:37Z Satria 1 wikitext text/x-wiki Man kann die voreingestellten Auflösungen verändern, was besonders nützlich ist, wenn man eine widescreen-Auflösung fahren möchte. Es muss die XWINGALLIANCE.EXE per Hex-Editor geöffnet werden. Die aufgeführten Offsets gelten für die letzte Version der EXE Datei.<br> <table> <th>Index in Config.cfg</th> <th>Auflösung (AxB)</th> <th>Auflösung in Hex in der Datei</th> <th>Offset für A</th> <th>Offset für B</th> <tr> <td>1</td> <td>800x600</td> <td>2003 5802</td> <td></td> <td></td> </tr> <tr> <td>2</td> <td>1024x768</td> <td>0004 0003</td> <td>1090324</td> <td>1090396</td> </tr> <tr> <td>3</td> <td>1152x864</td> <td>8004 6003</td> <td>1090429</td> <td>1090434</td> </tr> <tr> <td>4</td> <td>1280x1024</td> <td>0005 0004</td> <td>1090324</td> <td>1090463</td> </tr> <tr> <td>5</td> <td>1600x1200</td> <td>4006 B004 <td>1090492</td> <td>1090497</td> </tr> </table> Eine Auflösung, auf die man verzichten kann, wird mit den gewünschten Werten an der korrekten Stelle überschrieben. Der Indexwert wird in der Config.cfg als "screenres1" und "screenres2" gesetzt. Beispiel:<br> Überschreibt man die Auflösung 1152x864 (80 04 00 00 B9 60 03) mit den Hex-Werten <b>90 06</b> 00 00 B9 <b>38 04</b>, sehen die Zeilen der Config.cfg wie folgt aus: <pre> screenres1 3 screenres2 3 </pre> 4ecbd35f351f16d4eb341afbf9608aaf61cc21ed 306 305 2011-12-11T23:29:31Z Satria 1 wikitext text/x-wiki Man kann die voreingestellten Auflösungen verändern, was besonders nützlich ist, wenn man eine widescreen-Auflösung fahren möchte. Es muss die XWINGALLIANCE.EXE per Hex-Editor geöffnet werden. Die aufgeführten Offsets gelten für die letzte Version der EXE Datei.<br> <table> <th>Index in Config.cfg</th> <th>Auflösung (AxB)</th> <th>Auflösung in Hex in der Datei</th> <th>Offset für A</th> <th>Offset für B</th> <tr> <td>1</td> <td>800x600</td> <td>2003 5802</td> <td></td> <td></td> </tr> <tr> <td>2</td> <td>1024x768</td> <td>0004 0003</td> <td>1090324</td> <td>1090396</td> </tr> <tr> <td>3</td> <td>1152x864</td> <td>8004 6003</td> <td>1090429</td> <td>1090434</td> </tr> <tr> <td>4</td> <td>1280x1024</td> <td>0005 0004</td> <td>1090324</td> <td>1090463</td> </tr> <tr> <td>5</td> <td>1600x1200</td> <td>4006 B004 <td>1090492</td> <td>1090497</td> </tr> </table> Eine Auflösung, auf die man verzichten kann, wird mit den gewünschten Werten an der korrekten Stelle überschrieben. Der Indexwert wird in der Config.cfg als "screenres1" und "screenres2" gesetzt. Beispiel:<br> Überschreibt man die Auflösung 1152x864 (80 04 00 00 B9 60 03) mit den Hex-Werten <b>90 06</b> 00 00 B9 <b>1A 04</b>, was der Auflösung 1680x1050 entspricht, sehen die Zeilen der Config.cfg wie folgt aus: <pre> screenres1 3 screenres2 3 </pre> 9854fe776b3116423a7cd227a0ea408fbaa843c6 FFmpeg 0 51 323 121 2011-12-14T21:51:47Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. ==Einzelbilder zu einem Video machen== Aber ist auch das beste freeware tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.<br> Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die einen Namen wie <u>Frame %03d.jpg</u> (passend zu den bild-Dateien) trägt. Die Windows-Dateinamenkonvention erlaubt das zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. ==Mehrere Audio-Streams== Die Syntax, um mehrere Audio-Streams mit einem Video-Stream zu multiplexen, ist folgende Syntax notwendig:<br> <pre> ffmpeg <Input params> -i <Audio/Video input file 0> -i <Audio input file 1> -map 0:0 -map 0:1 <Output file> -map 1:0 -newaudio </pre> ==Quellen== ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ f2db601e763a71bdf35558066d53a788aaddae32 Windows 7 & 8 0 758 891 2012-01-26T16:19:09Z Satria 1 Die Seite wurde neu angelegt: „Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == ZIP-folders abschalten == Was in Win…“ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == ZIP-folders abschalten == Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. 5fba48e6f6c78a4cdb4f43316cc437474f38aefa 892 891 2012-01-26T16:21:33Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. a9356c029f2c14db3a86bef79f4af5f27e32baf8 893 892 2012-01-26T16:21:50Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. 4112c670f121c8e625353d316a9d5e8bc25665ee 974 893 2012-01-29T17:24:41Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand EIN: powercfg -H off<br> Ruhezustand AUS: powercfg -H on </pre> == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. ea50a9b56eff28614739e382ab35ff40c8dbfbf0 1149 974 2012-02-05T01:34:12Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand EIN: powercfg -H off<br> Ruhezustand AUS: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. 03e73a357f92937f0e25adabee3bb0a4fb00f0e5 1760 1149 2012-02-15T11:01:38Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kb nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand EIN: powercfg -H off<br> Ruhezustand AUS: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135] [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/] e9d79e9c61ed3e9227ba51a6b6a8d3dd719d9f41 1761 1760 2012-02-15T11:02:04Z Satria 1 /* Anmeldebildschirm (Hintergrundbild) */ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand EIN: powercfg -H off<br> Ruhezustand AUS: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135] [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/] d0fc0998db68210f944b82554c71b3c7f02b6bd0 1960 1761 2012-02-18T03:39:39Z Satria 1 /* Ruhezustand (de)aktivieren */ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135] [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/] ba349d31755f2d27a82d1530e5f7c6697ec0e244 2773 1960 2012-03-05T23:31:06Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135] [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/] 0491032b2b0ce8488081409344daa536fb3c1a83 2774 2773 2012-03-05T23:32:43Z Satria 1 /* Bibliotheken und/oder Faoriten ausblenden */ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135] [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/] dcf4c6db0b128ce9478efc0a066bd9b626d76c76 2783 2774 2012-04-20T10:09:07Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135] [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/] [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html CLSID key list] f6ca31fd3094178e0ff0450b0af027b3d78b5bed 2784 2783 2012-04-20T10:09:30Z Satria 1 /* Quellen */ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html CLSID key list]<br> 34e892c944a0e85439075570cc6295bd8a00f9f7 2785 2784 2012-04-25T09:46:59Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html CLSID key list]<br> 6ea1a2f295d33bbdce250b8fa020ff769be6e98b 2793 2785 2014-08-23T13:16:16Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Test-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html CLSID key list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 2a55da31029314541fb416510bf3ae6995bf09e9 Windows Doppelte Autostart-Einträge 0 22 980 28 2012-01-29T23:25:08Z Satria 1 wikitext text/x-wiki Wenn '''WindowsXP''' oder '''Windows 7''' (vermutlich auch '''Vista''') beim Starten die Elemente in dem "Autostart"-Ordner des Startmenüs zweimal startet, ist die Lösung leider nicht ganz trivial, sondern sogar unlogisch. Schaut man sich den Autostart mit diversen Tools ([http://technet.microsoft.com/de-de/sysinternals/bb963902.aspx Autoruns]) oder msconfig an, so existieren alle Einträge tatsächlich 2 mal. Für alle Benutzer und den aktuellen. Löscht man einen Eintrag, ist der andere auch verschwunden! Verzwickt. !Ich habe das Problem bei mir gehabt und gelöst, dank eines Artikels im www. Es liegt an 2 falschen Registry-Einträgen. Warum und wodurch diese sich ohne guten Grund verstellt haben, weiß ich nicht. [[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] Hier den Wert für '''"Startup"''' korrigieren. Der Pfad enthält "All Users", sollte aber die ID des aktuell angemeldeten Benutzers haben (wie alle anderen Einträge dort auch). Ändern! [[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] Selbes gilt hier! 603c12a1897e3a11e9814cae6398a08da92fcfdd Analoges Fernsehen 0 3 2771 9 2012-03-04T00:55:17Z Satria 1 wikitext text/x-wiki Das analoge terrestrische Fernsehsignal (Empfang der analogen Funkwellen über die "Luft") wurde offziell am 31.12.2008 komplett abgeschaltet. Es ist durch das digitale DVB-T ersetzt worden, das im Übrigen dieselben Frequenzen nutzt, wie das analoge Signal. Die Abschaltung des analogen Satellitensignals ist für Termine zwischen 2010 und 2012 geplant. Jeder Sender entscheidet selbst über den Abschalttermin. Zielsetzung für die analoge Abschaltung im Kabelnetz ist 2010, was nicht als festgesetzter, endgültiger Termin zu verstehen ist (s. Quellen). Ich persönlich würde aber vorsorgen, damit man nicht plötzlich statt Fernsehen das Nachsehen hat ;) Obwohl - ein paar Tage/Wochen ohne Fernsehn tun auch nicht unbedingt weh ;) ==Quellen== [http://www.gutefrage.net/tipp/das-maerchen-ueber-die-abschaltung-des-analogen-fernsehens www.gutefrage.net]<br> [http://de.wikipedia.org/wiki/Analoges_Fernsehen Analoges Fernsehen auf Wikipedia]<br> [http://de.wikipedia.org/wiki/Digitaler_Rundfunk Digitaler Rundfunk auf Wikipedia]<br> e2948e4262a6fc79f313f724d8a1226ba7aef715 Hilfe:Formatierung 12 33 2775 55 2012-04-13T13:47:04Z Satria 1 wikitext text/x-wiki Mithilfe eines speziellen Wiki-Markups ist es möglich, Text zu formatieren. Dafür werden normale Zeichen wie Sternchen, einfache Anführungsstriche oder Gleichheitszeichen verwendet. Um ein Wort beispielsweise ''kursiv'' zu schreiben, setzt man es in zwei einfache Anführungsstriche. Im Code würde das so aussehen: <code><nowiki>''kursiv''</nowiki></code>. == Absätze/ Zeilenumbrüche == Mediawiki ignoriert Absätze am Zeilenende. Um einen neuen Absatz zu beginnen, muss man eine leere Zeile einfügen. {{Admin tip/de|tip=Man kann über die Verwendung von HTML-Code einen Zeilenumbruch erzwingen. <code><nowiki><br></nowiki></code>}} == Textformatierung == {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | colspan="3" align="center" | ''überall anwendbar'' |- |kursiver Text |<pre> ''kursiv'' </pre> |''kursiv'' |- | fetter Text |<pre> '''fett''' </pre> |'''fett''' |- | fett und kursiv |<pre> '''''fett & kursiv''''' </pre> |'''''fett & kursiv''''' |- |Unterbinden des Wiki-Markup |<pre> &lt;nowiki>kein ''Markup''</nowiki&gt; </pre> |<nowiki>kein ''Markup''</nowiki> |- | colspan="3" align="center" | ''nur am Beginn einer neuen Zeile anwendbar'' |- |Überschriften<br /> in verschiedenen Grössen | <pre> =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== </pre> ---- {{note/de| * [[Help_talk:Formatting#Level_1|Ebene 1 vermeiden]], diese Überschriftenebene ist dem Seitennamen vorbehalten. * Bei vier oder mehr Überschriften wird automatisch ein Inhaltsverzeichnis generiert. }} | =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== |- |Horizontale Linie | <pre> Text ---- Mehr Text </pre> | Text ---- Mehr Text |- |ungeordnete Liste | <pre> * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt </pre> | * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt |- |geordnete Liste | <pre> # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt </pre> | # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt |- |Definitionsliste | <pre> ;Definition :Beschreibung 1 :Beschreibung 2 </pre> | ;Definition :Beschreibung 1 :Beschreibung 2 |- |Vorformatierter Text | <pre> ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld </pre> | ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld | |- |Vorformatierter Textblock | <pre> <nowiki><nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki></nowiki> </pre> | <nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki> |} == HTML == In MediaWiki sind einige HTML-Tags erlaubt. Zum Beispiel <code><nowiki><code></nowiki></code>, <code><nowiki><div></nowiki></code>, <code><nowiki><span></nowiki></code> und <code><nowiki><font></nowiki></code>. {{Admin tip/de|tip=Bei einem geschlossenen Benutzerkreis kann man HTML voll zulassen über die Einstellung <code>$wgRawHtml = true;</code> in der LocalSettings.php. HTML-Code deaktiviert man vollständig mit <code>$wgUserHtml = false;</code>.}} {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | Eingefügt<br>(Gibt einen Unterstrich in den meisten Webbrowsern.) | <pre> <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> </pre> | <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> |- | Gelöscht<br>(Gibt einen Durchstrich in den meisten Webbrowsern.) | <pre> <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> </pre> | <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> |- | Nicht proportionaler Text | <pre> <code>Source code</code> od. <tt>Nicht proportionaler Text</tt> </pre> | <code>Source code</code> oder <tt>Nicht proportionaler Text</tt> |- | Zitieren | <pre> text text <blockquote>Zitat</blockquote> text text </pre> | text text <blockquote>Zitat</blockquote> text text |- | Kommentar | <pre> <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. </pre> | <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. |- | Vorformatierter Text | <pre> <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.&lt;/pre> </pre> | <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.</pre> </pre> |- | '''Angepasster''' vorformatierter Text | <pre> <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. &lt;/pre> </pre> | <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. </pre> |} == HTML Symbole == Mit bestimmten HTML Codes lassen sich Sonderzeichen erzeugen. Zum Beispiel erzeugt <code>&amp;rarr;</code> einen Pfeil nach rechts "<code>&rarr;</code>". Die Codes sind in MediaWiki erlaubt, um Zeichen zu erzeugen, die nicht auf der Tastatur vorhanden sind: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' Weiterhin kann mann HTML Tags und Symbole darstellen, die normalerweise interpretiert werden: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' Im Folgenden ein Tabelle aller verfügbaren HTML Symbole. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} __NOTOC__ 271be02e273ddd6a62181c41171f50cf589e2460 2776 2775 2012-04-13T13:51:37Z Satria 1 wikitext text/x-wiki Mithilfe eines speziellen Wiki-Markups ist es möglich, Text zu formatieren. Dafür werden normale Zeichen wie Sternchen, einfache Anführungsstriche oder Gleichheitszeichen verwendet. Um ein Wort beispielsweise ''kursiv'' zu schreiben, setzt man es in zwei einfache Anführungsstriche. Im Code würde das so aussehen: <code><nowiki>''kursiv''</nowiki></code>. == Absätze/ Zeilenumbrüche == Mediawiki ignoriert Absätze am Zeilenende. Um einen neuen Absatz zu beginnen, muss man eine leere Zeile einfügen. Man kann über die Verwendung von HTML-Code einen Zeilenumbruch erzwingen. <code><nowiki><br></nowiki></code> == Textformatierung == {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | colspan="3" align="center" | ''überall anwendbar'' |- |kursiver Text |<pre> ''kursiv'' </pre> |''kursiv'' |- | fetter Text |<pre> '''fett''' </pre> |'''fett''' |- | fett und kursiv |<pre> '''''fett & kursiv''''' </pre> |'''''fett & kursiv''''' |- |Unterbinden des Wiki-Markup |<pre> &lt;nowiki>kein ''Markup''</nowiki&gt; </pre> |<nowiki>kein ''Markup''</nowiki> |- | colspan="3" align="center" | ''nur am Beginn einer neuen Zeile anwendbar'' |- |Überschriften<br /> in verschiedenen Grössen | <pre> =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== </pre> ---- * [[Help_talk:Formatting#Level_1|Ebene 1 vermeiden]], diese Überschriftenebene ist dem Seitennamen vorbehalten. * Bei vier oder mehr Überschriften wird automatisch ein Inhaltsverzeichnis generiert. | =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== |- |Horizontale Linie | <pre> Text ---- Mehr Text </pre> | Text ---- Mehr Text |- |ungeordnete Liste | <pre> * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt </pre> | * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt |- |geordnete Liste | <pre> # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt </pre> | # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt |- |Definitionsliste | <pre> ;Definition :Beschreibung 1 :Beschreibung 2 </pre> | ;Definition :Beschreibung 1 :Beschreibung 2 |- |Vorformatierter Text | <pre> ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld </pre> | ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld | |- |Vorformatierter Textblock | <pre> <nowiki><nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki></nowiki> </pre> | <nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki> |} == HTML == In MediaWiki sind einige HTML-Tags erlaubt. Zum Beispiel <code><nowiki><code></nowiki></code>, <code><nowiki><div></nowiki></code>, <code><nowiki><span></nowiki></code> und <code><nowiki><font></nowiki></code>. Bei einem geschlossenen Benutzerkreis kann man HTML voll zulassen über die Einstellung <code>$wgRawHtml = true;</code> in der LocalSettings.php. HTML-Code deaktiviert man vollständig mit <code>$wgUserHtml = false;</code>. {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | Eingefügt<br>(Gibt einen Unterstrich in den meisten Webbrowsern.) | <pre> <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> </pre> | <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> |- | Gelöscht<br>(Gibt einen Durchstrich in den meisten Webbrowsern.) | <pre> <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> </pre> | <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> |- | Nicht proportionaler Text | <pre> <code>Source code</code> od. <tt>Nicht proportionaler Text</tt> </pre> | <code>Source code</code> oder <tt>Nicht proportionaler Text</tt> |- | Zitieren | <pre> text text <blockquote>Zitat</blockquote> text text </pre> | text text <blockquote>Zitat</blockquote> text text |- | Kommentar | <pre> <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. </pre> | <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. |- | Vorformatierter Text | <pre> <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.&lt;/pre> </pre> | <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.</pre> </pre> |- | '''Angepasster''' vorformatierter Text | <pre> <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. &lt;/pre> </pre> | <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. </pre> |} == HTML Symbole == Mit bestimmten HTML Codes lassen sich Sonderzeichen erzeugen. Zum Beispiel erzeugt <code>&amp;rarr;</code> einen Pfeil nach rechts "<code>&rarr;</code>". Die Codes sind in MediaWiki erlaubt, um Zeichen zu erzeugen, die nicht auf der Tastatur vorhanden sind: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' Weiterhin kann mann HTML Tags und Symbole darstellen, die normalerweise interpretiert werden: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' Im Folgenden ein Tabelle aller verfügbaren HTML Symbole. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} __NOTOC__ 9562436fba0392bfd032a051bd3bd9b5b0a44ef7 2782 2776 2012-04-17T11:43:55Z Satria 1 /* HTML */ wikitext text/x-wiki Mithilfe eines speziellen Wiki-Markups ist es möglich, Text zu formatieren. Dafür werden normale Zeichen wie Sternchen, einfache Anführungsstriche oder Gleichheitszeichen verwendet. Um ein Wort beispielsweise ''kursiv'' zu schreiben, setzt man es in zwei einfache Anführungsstriche. Im Code würde das so aussehen: <code><nowiki>''kursiv''</nowiki></code>. == Absätze/ Zeilenumbrüche == Mediawiki ignoriert Absätze am Zeilenende. Um einen neuen Absatz zu beginnen, muss man eine leere Zeile einfügen. Man kann über die Verwendung von HTML-Code einen Zeilenumbruch erzwingen. <code><nowiki><br></nowiki></code> == Textformatierung == {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | colspan="3" align="center" | ''überall anwendbar'' |- |kursiver Text |<pre> ''kursiv'' </pre> |''kursiv'' |- | fetter Text |<pre> '''fett''' </pre> |'''fett''' |- | fett und kursiv |<pre> '''''fett & kursiv''''' </pre> |'''''fett & kursiv''''' |- |Unterbinden des Wiki-Markup |<pre> &lt;nowiki>kein ''Markup''</nowiki&gt; </pre> |<nowiki>kein ''Markup''</nowiki> |- | colspan="3" align="center" | ''nur am Beginn einer neuen Zeile anwendbar'' |- |Überschriften<br /> in verschiedenen Grössen | <pre> =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== </pre> ---- * [[Help_talk:Formatting#Level_1|Ebene 1 vermeiden]], diese Überschriftenebene ist dem Seitennamen vorbehalten. * Bei vier oder mehr Überschriften wird automatisch ein Inhaltsverzeichnis generiert. | =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== |- |Horizontale Linie | <pre> Text ---- Mehr Text </pre> | Text ---- Mehr Text |- |ungeordnete Liste | <pre> * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt </pre> | * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt |- |geordnete Liste | <pre> # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt </pre> | # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt |- |Definitionsliste | <pre> ;Definition :Beschreibung 1 :Beschreibung 2 </pre> | ;Definition :Beschreibung 1 :Beschreibung 2 |- |Vorformatierter Text | <pre> ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld </pre> | ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld | |- |Vorformatierter Textblock | <pre> <nowiki><nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki></nowiki> </pre> | <nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki> |} == HTML == In MediaWiki sind einige HTML-Tags erlaubt. Zum Beispiel <code><nowiki><code></nowiki></code>, <code><nowiki><div></nowiki></code>, <code><nowiki><span></nowiki></code> und <code><nowiki><font></nowiki></code>. Bei einem geschlossenen Benutzerkreis kann man HTML voll zulassen über die Einstellung <code>$wgRawHtml = true;</code> in der LocalSettings.php. HTML-Code deaktiviert man vollständig mit <code>$wgUserHtml = false;</code>. {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | Eingefügt<br>(Gibt einen Unterstrich in den meisten Webbrowsern.) | <pre> <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> </pre> | <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> |- | Gelöscht<br>(Gibt einen Durchstrich in den meisten Webbrowsern.) | <pre> <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> </pre> | <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> |- | Nicht proportionaler Text | <pre> <code>Source code</code> od. <tt>Nicht proportionaler Text</tt> </pre> | <code>Source code</code> oder <tt>Nicht proportionaler Text</tt> |- | Zitieren | <pre> text text <blockquote>Zitat</blockquote> text text </pre> | text text <blockquote>Zitat</blockquote> text text |- | Kommentar | <pre> <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. </pre> | <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. |- | Vorformatierter Text | <pre> <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.&lt;/pre> </pre> | <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.</pre> </pre> |- | '''Angepasster''' vorformatierter Text | <pre> <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. &lt;/pre> </pre> | <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. </pre> |- | Ein-/Aufklappbarer Text<br>(ab 1.18.x) | <pre> <div class="toccolour mw-collapsible mw-collapsed"> Dieser Text ist immer sichtbar <div class="mw-collapsible-content"> Dieser Text kann aufgeklappt werden, und ist wegen "mw-collapsed" initial bereits eingeklappt. "toccolour" sorgt für die Umrahmung zur besseren Erkennung der Zusammengehörigkeit des sichtbaren und einklappbaren Textes. </div> </div> </pre> | <div class="toccolour mw-collapsible mw-collapsed"> Dieser Text ist immer sichtbar. <div class="mw-collapsible-content"> Dieser Text kann aufgeklappt werden, und ist wegen "mw-collapsed" initial bereits eingeklappt.<br> "toccolour" sorgt für die Umrahmung zur besseren Erkennung der Zusammengehörigkeit des sichtbaren und des einklappbaren Textes. </div> </div> |- |Poem | MediaWiki Extension für 1.18.x! <pre> <poem> Dieser Text wird mit seinen Leerzeichen am Zeilenanfang und Zeilenumbrüchen ohne <br> so dargestellt, wie er eingegeben wurde. </poem> </pre> | <poem> Dieser Text wird mit seinen Leerzeichen am Zeilenanfang und Zeilenumbrüchen ohne &lt;br&gt; so dargestellt, wie er eingegeben wurde. </poem> |} == HTML Symbole == Mit bestimmten HTML Codes lassen sich Sonderzeichen erzeugen. Zum Beispiel erzeugt <code>&amp;rarr;</code> einen Pfeil nach rechts "<code>&rarr;</code>". Die Codes sind in MediaWiki erlaubt, um Zeichen zu erzeugen, die nicht auf der Tastatur vorhanden sind: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' Weiterhin kann mann HTML Tags und Symbole darstellen, die normalerweise interpretiert werden: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' Im Folgenden ein Tabelle aller verfügbaren HTML Symbole. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} __NOTOC__ 59ea6d426d5db4a9cb28a0ec1b8e846c304ac755 2786 2782 2012-05-03T12:50:27Z Satria 1 wikitext text/x-wiki Mithilfe eines speziellen Wiki-Markups ist es möglich, Text zu formatieren. Dafür werden normale Zeichen wie Sternchen, einfache Anführungsstriche oder Gleichheitszeichen verwendet. Um ein Wort beispielsweise ''kursiv'' zu schreiben, setzt man es in zwei einfache Anführungsstriche. Im Code würde das so aussehen: <code><nowiki>''kursiv''</nowiki></code>. == Absätze/ Zeilenumbrüche == Mediawiki ignoriert Absätze am Zeilenende. Um einen neuen Absatz zu beginnen, muss man eine leere Zeile einfügen. Man kann über die Verwendung von HTML-Code einen Zeilenumbruch erzwingen. <code><nowiki><br></nowiki></code> == Textformatierung == {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | colspan="3" align="center" | ''überall anwendbar'' |- |kursiver Text |<pre> ''kursiv'' </pre> |''kursiv'' |- | fetter Text |<pre> '''fett''' </pre> |'''fett''' |- | fett und kursiv |<pre> '''''fett & kursiv''''' </pre> |'''''fett & kursiv''''' |- |Unterbinden des Wiki-Markup |<pre> &lt;nowiki>kein ''Markup''</nowiki&gt; </pre> |<nowiki>kein ''Markup''</nowiki> |- | colspan="3" align="center" | ''nur am Beginn einer neuen Zeile anwendbar'' |- |Überschriften<br /> in verschiedenen Grössen | <pre> =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== </pre> ---- * [[Help_talk:Formatting#Level_1|Ebene 1 vermeiden]], diese Überschriftenebene ist dem Seitennamen vorbehalten. * Bei vier oder mehr Überschriften wird automatisch ein Inhaltsverzeichnis generiert. | =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== |- |Horizontale Linie | <pre> Text ---- Mehr Text </pre> | Text ---- Mehr Text |- |ungeordnete Liste | <pre> * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt </pre> | * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt |- |geordnete Liste | <pre> # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt </pre> | # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt |- |Definitionsliste | <pre> ;Definition :Beschreibung 1 :Beschreibung 2 </pre> | ;Definition :Beschreibung 1 :Beschreibung 2 |- |Vorformatierter Text | <pre> ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld </pre> | ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld | |- |Vorformatierter Textblock | <pre> <nowiki><nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki></nowiki> </pre> | <nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki> |} == HTML == In MediaWiki sind einige HTML-Tags erlaubt. Zum Beispiel <code><nowiki><code></nowiki></code>, <code><nowiki><div></nowiki></code>, <code><nowiki><span></nowiki></code> und <code><nowiki><font></nowiki></code>. Bei einem geschlossenen Benutzerkreis kann man HTML voll zulassen über die Einstellung <code>$wgRawHtml = true;</code> in der LocalSettings.php. HTML-Code deaktiviert man vollständig mit <code>$wgUserHtml = false;</code>. {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | Eingefügt<br>(Gibt einen Unterstrich in den meisten Webbrowsern.) | <pre> <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> </pre> | <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> |- | Gelöscht<br>(Gibt einen Durchstrich in den meisten Webbrowsern.) | <pre> <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> </pre> | <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> |- | Nicht proportionaler Text | <pre> <code>Source code</code> od. <tt>Nicht proportionaler Text</tt> </pre> | <code>Source code</code> oder <tt>Nicht proportionaler Text</tt> |- | Zitieren | <pre> text text <blockquote>Zitat</blockquote> text text </pre> | text text <blockquote>Zitat</blockquote> text text |- | Kommentar | <pre> <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. </pre> | <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. |- | Vorformatierter Text | <pre> <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.&lt;/pre> </pre> | <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.</pre> </pre> |- | '''Angepasster''' vorformatierter Text | <pre> <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. &lt;/pre> </pre> | <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. </pre> |- | Ein-/Aufklappbarer Text<br>(ab 1.18.x) | <pre> <div class="toccolours mw-collapsible mw-collapsed"> Dieser Text ist immer sichtbar <div class="mw-collapsible-content"> Dieser Text kann aufgeklappt werden, und ist wegen "mw-collapsed" initial bereits eingeklappt. "toccolours" sorgt für die Umrahmung zur besseren Erkennung der Zusammengehörigkeit des sichtbaren und einklappbaren Textes.<br> Das Anhängen des class-Attributes an andere tags (z.B. <pre>) ist möglich. </div> </div> </pre> | <div class="toccolours mw-collapsible mw-collapsed" style="color:black"> Dieser Text ist immer sichtbar. <div class="mw-collapsible-content" style="color:black"> Dieser Text kann aufgeklappt werden, und ist wegen "mw-collapsed" initial bereits eingeklappt.<br> "toccolours" sorgt für die Umrahmung zur besseren Erkennung der Zusammengehörigkeit des sichtbaren und des einklappbaren Textes.<br> Das Anhängen des class-Attributes an andere tags (z.B. &lt;pre&gt;) ist möglich. </div> </div> |- |Poem | MediaWiki Extension für 1.18.x! <pre> <poem> Dieser Text wird mit seinen Leerzeichen am Zeilenanfang und Zeilenumbrüchen ohne <br> so dargestellt, wie er eingegeben wurde. </poem> </pre> | <poem> Dieser Text wird mit seinen Leerzeichen am Zeilenanfang und Zeilenumbrüchen ohne &lt;br&gt; so dargestellt, wie er eingegeben wurde. </poem> |} == HTML Symbole == Mit bestimmten HTML Codes lassen sich Sonderzeichen erzeugen. Zum Beispiel erzeugt <code>&amp;rarr;</code> einen Pfeil nach rechts "<code>&rarr;</code>". Die Codes sind in MediaWiki erlaubt, um Zeichen zu erzeugen, die nicht auf der Tastatur vorhanden sind: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' Weiterhin kann mann HTML Tags und Symbole darstellen, die normalerweise interpretiert werden: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' Im Folgenden ein Tabelle aller verfügbaren HTML Symbole. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} __NOTOC__ 1e9d97a29c2a5c177b14567ed03c233d3aa8793e 2787 2786 2012-05-03T12:52:01Z Satria 1 /* HTML */ wikitext text/x-wiki Mithilfe eines speziellen Wiki-Markups ist es möglich, Text zu formatieren. Dafür werden normale Zeichen wie Sternchen, einfache Anführungsstriche oder Gleichheitszeichen verwendet. Um ein Wort beispielsweise ''kursiv'' zu schreiben, setzt man es in zwei einfache Anführungsstriche. Im Code würde das so aussehen: <code><nowiki>''kursiv''</nowiki></code>. == Absätze/ Zeilenumbrüche == Mediawiki ignoriert Absätze am Zeilenende. Um einen neuen Absatz zu beginnen, muss man eine leere Zeile einfügen. Man kann über die Verwendung von HTML-Code einen Zeilenumbruch erzwingen. <code><nowiki><br></nowiki></code> == Textformatierung == {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | colspan="3" align="center" | ''überall anwendbar'' |- |kursiver Text |<pre> ''kursiv'' </pre> |''kursiv'' |- | fetter Text |<pre> '''fett''' </pre> |'''fett''' |- | fett und kursiv |<pre> '''''fett & kursiv''''' </pre> |'''''fett & kursiv''''' |- |Unterbinden des Wiki-Markup |<pre> &lt;nowiki>kein ''Markup''</nowiki&gt; </pre> |<nowiki>kein ''Markup''</nowiki> |- | colspan="3" align="center" | ''nur am Beginn einer neuen Zeile anwendbar'' |- |Überschriften<br /> in verschiedenen Grössen | <pre> =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== </pre> ---- * [[Help_talk:Formatting#Level_1|Ebene 1 vermeiden]], diese Überschriftenebene ist dem Seitennamen vorbehalten. * Bei vier oder mehr Überschriften wird automatisch ein Inhaltsverzeichnis generiert. | =Ebene 1= ==Ebene 2== ===Ebene 3=== ====Ebene 4==== =====Ebene 5===== ======Ebene 6====== |- |Horizontale Linie | <pre> Text ---- Mehr Text </pre> | Text ---- Mehr Text |- |ungeordnete Liste | <pre> * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt </pre> | * erste Zeile * zweite Zeile * dritte Zeile ** dritte Zeile, erster Unterpunkt ** dritte Zeile, zweiter Unterpunkt |- |geordnete Liste | <pre> # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt </pre> | # erste Zeile # zweite Zeile # dritte Zeile ## dritte Zeile, erster Unterpunkt ## dritte Zeile, zweiter Unterpunkt |- |Definitionsliste | <pre> ;Definition :Beschreibung 1 :Beschreibung 2 </pre> | ;Definition :Beschreibung 1 :Beschreibung 2 |- |Vorformatierter Text | <pre> ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld </pre> | ein Leerzeichen am Anfang einer Zeile erstellt ein solches Textfeld | |- |Vorformatierter Textblock | <pre> <nowiki><nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki></nowiki> </pre> | <nowiki> Ein Leerzeichen vor dem Tag <nowiki> stellt den Text so dar, wie er getippt wurde. Ideal für Codeblöcke: void power (double d) { return d * d; } </nowiki> |} == HTML == In MediaWiki sind einige HTML-Tags erlaubt. Zum Beispiel <code><nowiki><code></nowiki></code>, <code><nowiki><div></nowiki></code>, <code><nowiki><span></nowiki></code> und <code><nowiki><font></nowiki></code>. Bei einem geschlossenen Benutzerkreis kann man HTML voll zulassen über die Einstellung <code>$wgRawHtml = true;</code> in der LocalSettings.php. HTML-Code deaktiviert man vollständig mit <code>$wgUserHtml = false;</code>. {| class="wikitable" ! Beschreibung ! width=40% | Wiki-Code ! width=40% | Ausgabe |- | Eingefügt<br>(Gibt einen Unterstrich in den meisten Webbrowsern.) | <pre> <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> </pre> | <ins>Eingefügt</ins> od. <span style="text-decoration: underline;">Eingefügt</span> |- | Gelöscht<br>(Gibt einen Durchstrich in den meisten Webbrowsern.) | <pre> <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> </pre> | <del>Gelöscht</del> od. <span style="text-decoration: line-through;">Gelöscht</span> |- | Nicht proportionaler Text | <pre> <code>Source code</code> od. <tt>Nicht proportionaler Text</tt> </pre> | <code>Source code</code> oder <tt>Nicht proportionaler Text</tt> |- | Zitieren | <pre> text text <blockquote>Zitat</blockquote> text text </pre> | text text <blockquote>Zitat</blockquote> text text |- | Kommentar | <pre> <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. </pre> | <!-- Das ist ein Kommentar --> Kommentare kann man nur beim Editieren sehen. |- | Vorformatierter Text | <pre> <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.&lt;/pre> </pre> | <pre> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet.</pre> </pre> |- | '''Angepasster''' vorformatierter Text | <pre> <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. &lt;/pre> </pre> | <pre style="color:red"> Der Text ist bereits '''formatiert''' und ''Wiki-Code'' wird nicht beachtet. Der Style wird aber genutzt. </pre> |- | Ein-/Aufklappbarer Text<br>(ab 1.18.x) | <pre> <div class="toccolours mw-collapsible mw-collapsed"> Dieser Text ist immer sichtbar <div class="mw-collapsible-content"> Dieser Text kann aufgeklappt werden, und ist wegen "mw-collapsed" initial bereits eingeklappt. "toccolours" sorgt für die Umrahmung zur besseren Erkennung der Zusammengehörigkeit des sichtbaren und einklappbaren Textes. Das Anhängen des class-Attributes an andere tags (z.B. <pre>) ist möglich. </div> </div> </pre> | <div class="toccolours mw-collapsible mw-collapsed" style="color:black"> Dieser Text ist immer sichtbar. <div class="mw-collapsible-content" style="color:black"> Dieser Text kann aufgeklappt werden, und ist wegen "mw-collapsed" initial bereits eingeklappt.<br> "toccolours" sorgt für die Umrahmung zur besseren Erkennung der Zusammengehörigkeit des sichtbaren und des einklappbaren Textes.<br> Das Anhängen des class-Attributes an andere tags (z.B. &lt;pre&gt;) ist möglich. </div> </div> |- |Poem | MediaWiki Extension für 1.18.x! <pre> <poem> Dieser Text wird mit seinen Leerzeichen am Zeilenanfang und Zeilenumbrüchen ohne <br> so dargestellt, wie er eingegeben wurde. </poem> </pre> | <poem> Dieser Text wird mit seinen Leerzeichen am Zeilenanfang und Zeilenumbrüchen ohne &lt;br&gt; so dargestellt, wie er eingegeben wurde. </poem> |} == HTML Symbole == Mit bestimmten HTML Codes lassen sich Sonderzeichen erzeugen. Zum Beispiel erzeugt <code>&amp;rarr;</code> einen Pfeil nach rechts "<code>&rarr;</code>". Die Codes sind in MediaWiki erlaubt, um Zeichen zu erzeugen, die nicht auf der Tastatur vorhanden sind: :<tt>&amp;copy;</tt>&nbsp;&rarr; '''&copy;''' :<tt>&amp;delta;</tt>&nbsp;&rarr; '''&delta;''' Weiterhin kann mann HTML Tags und Symbole darstellen, die normalerweise interpretiert werden: :<tt>&amp;amp;euro;</tt>&nbsp;&rarr; '''<tt>&amp;euro;</tt>''' :<tt>&amp;euro;</tt>&nbsp;&rarr; '''&euro;''' :<tt>&lt;span style="color:green;">Green&lt;/span></tt>&nbsp;&rarr; '''<span style="color:green;">Green</span>''' Im Folgenden ein Tabelle aller verfügbaren HTML Symbole. {| class="wikitable" align=center width=100% ! colspan=32 | HTML Symbol Entities |- align=center | <span title="&amp;Aacute;">&Aacute;</span> | <span title="&amp;aacute;">&aacute;</span> | <span title="&amp;Acirc;">&Acirc;</span> | <span title="&amp;acirc;">&acirc;</span> | <span title="&amp;acute;">&acute;</span> | <span title="&amp;AElig;">&AElig;</span> | <span title="&amp;aelig;">&aelig;</span> | <span title="&amp;Agrave;">&Agrave;</span> | <span title="&amp;agrave;">&agrave;</span> | <span title="&amp;alefsym;">&alefsym;</span> | <span title="&amp;Alpha;">&Alpha;</span> | <span title="&amp;alpha;">&alpha;</span> | <span title="&amp;amp;">&amp;</span> | <span title="&amp;and;">&and;</span> | <span title="&amp;ang;">&ang;</span> | <span title="&amp;Aring;">&Aring;</span> | <span title="&amp;aring;">&aring;</span> | <span title="&amp;asymp;">&asymp;</span> | <span title="&amp;Atilde;">&Atilde;</span> | <span title="&amp;atilde;">&atilde;</span> | <span title="&amp;Auml;">&Auml;</span> | <span title="&amp;auml;">&auml;</span> | <span title="&amp;bdquo;">&bdquo;</span> | <span title="&amp;Beta;">&Beta;</span> | <span title="&amp;beta;">&beta;</span> | <span title="&amp;brvbar;">&brvbar;</span> | <span title="&amp;bull;">&bull;</span> | <span title="&amp;cap;">&cap;</span> | <span title="&amp;Ccedil;">&Ccedil;</span> | <span title="&amp;ccedil;">&ccedil;</span> | <span title="&amp;cedil;">&cedil;</span> | <span title="&amp;cent;">&cent;</span> |- align=center | <span title="&amp;Chi;">&Chi;</span> | <span title="&amp;chi;">&chi;</span> | <span title="&amp;circ;">&circ;</span> | <span title="&amp;clubs;">&clubs;</span> | <span title="&amp;cong;">&cong;</span> | <span title="&amp;copy;">&copy;</span> | <span title="&amp;crarr;">&crarr;</span> | <span title="&amp;cup;">&cup;</span> | <span title="&amp;curren;">&curren;</span> | <span title="&amp;dagger;">&dagger;</span> | <span title="&amp;Dagger;">&Dagger;</span> | <span title="&amp;darr;">&darr;</span> | <span title="&amp;dArr;">&dArr;</span> | <span title="&amp;deg;">&deg;</span> | <span title="&amp;Delta;">&Delta;</span> | <span title="&amp;delta;">&delta;</span> | <span title="&amp;diams;">&diams;</span> | <span title="&amp;divide;">&divide;</span> | <span title="&amp;Eacute;">&Eacute;</span> | <span title="&amp;eacute;">&eacute;</span> | <span title="&amp;Ecirc;">&Ecirc;</span> | <span title="&amp;ecirc;">&ecirc;</span> | <span title="&amp;Egrave;">&Egrave;</span> | <span title="&amp;egrave;">&egrave;</span> | <span title="&amp;empty;">&empty;</span> | <span title="&amp;emsp;">&emsp;</span> | <span title="&amp;ensp;">&ensp;</span> | <span title="&amp;Epsilon;">&Epsilon;</span> | <span title="&amp;epsilon;">&epsilon;</span> | <span title="&amp;equiv;">&equiv;</span> | <span title="&amp;Eta;">&Eta;</span> | <span title="&amp;eta;">&eta;</span> |- align=center | <span title="&amp;ETH;">&ETH;</span> | <span title="&amp;eth;">&eth;</span> | <span title="&amp;Euml;">&Euml;</span> | <span title="&amp;euml;">&euml;</span> | <span title="&amp;euro;">&euro;</span> | <span title="&amp;exist;">&exist;</span> | <span title="&amp;fnof;">&fnof;</span> | <span title="&amp;forall;">&forall;</span> | <span title="&amp;frac12;">&frac12;</span> | <span title="&amp;frac14;">&frac14;</span> | <span title="&amp;frac34;">&frac34;</span> | <span title="&amp;frasl;">&frasl;</span> | <span title="&amp;Gamma;">&Gamma;</span> | <span title="&amp;gamma;">&gamma;</span> | <span title="&amp;ge;">&ge;</span> | <span title="&amp;gt;">&gt;</span> | <span title="&amp;harr;">&harr;</span> | <span title="&amp;hArr;">&hArr;</span> | <span title="&amp;hearts;">&hearts;</span> | <span title="&amp;hellip;">&hellip;</span> | <span title="&amp;Iacute;">&Iacute;</span> | <span title="&amp;iacute;">&iacute;</span> | <span title="&amp;Icirc;">&Icirc;</span> | <span title="&amp;icirc;">&icirc;</span> | <span title="&amp;iexcl;">&iexcl;</span> | <span title="&amp;Igrave;">&Igrave;</span> | <span title="&amp;igrave;">&igrave;</span> | <span title="&amp;image;">&image;</span> | <span title="&amp;infin;">&infin;</span> | <span title="&amp;int;">&int;</span> | <span title="&amp;Iota;">&Iota;</span> | <span title="&amp;iota;">&iota;</span> |- align=center | <span title="&amp;iquest;">&iquest;</span> | <span title="&amp;isin;">&isin;</span> | <span title="&amp;Iuml;">&Iuml;</span> | <span title="&amp;iuml;">&iuml;</span> | <span title="&amp;Kappa;">&Kappa;</span> | <span title="&amp;kappa;">&kappa;</span> | <span title="&amp;Lambda;">&Lambda;</span> | <span title="&amp;lambda;">&lambda;</span> | <span title="&amp;lang;">&lang;</span> | <span title="&amp;laquo;">&laquo;</span> | <span title="&amp;larr;">&larr;</span> | <span title="&amp;lArr;">&lArr;</span> | <span title="&amp;lceil;">&lceil;</span> | <span title="&amp;ldquo;">&ldquo;</span> | <span title="&amp;le;">&le;</span> | <span title="&amp;lfloor;">&lfloor;</span> | <span title="&amp;lowast;">&lowast;</span> | <span title="&amp;loz;">&loz;</span> | <span title="&amp;lrm;">&lrm;</span> | <span title="&amp;lsaquo;">&lsaquo;</span> | <span title="&amp;lsquo;">&lsquo;</span> | <span title="&amp;lt;">&lt;</span> | <span title="&amp;macr;">&macr;</span> | <span title="&amp;mdash;">&mdash;</span> | <span title="&amp;micro;">&micro;</span> | <span title="&amp;middot;">&middot;</span> | <span title="&amp;minus;">&minus;</span> | <span title="&amp;Mu;">&Mu;</span> | <span title="&amp;mu;">&mu;</span> | <span title="&amp;nabla;">&nabla;</span> | <span title="&amp;nbsp;">&nbsp;</span> | <span title="&amp;ndash;">&ndash;</span> |- align=center | <span title="&amp;ne;">&ne;</span> | <span title="&amp;ni;">&ni;</span> | <span title="&amp;not;">&not;</span> | <span title="&amp;notin;">&notin;</span> | <span title="&amp;nsub;">&nsub;</span> | <span title="&amp;Ntilde;">&Ntilde;</span> | <span title="&amp;ntilde;">&ntilde;</span> | <span title="&amp;Nu;">&Nu;</span> | <span title="&amp;nu;">&nu;</span> | <span title="&amp;Oacute;">&Oacute;</span> | <span title="&amp;oacute;">&oacute;</span> | <span title="&amp;Ocirc;">&Ocirc;</span> | <span title="&amp;ocirc;">&ocirc;</span> | <span title="&amp;OElig;">&OElig;</span> | <span title="&amp;oelig;">&oelig;</span> | <span title="&amp;Ograve;">&Ograve;</span> | <span title="&amp;ograve;">&ograve;</span> | <span title="&amp;oline;">&oline;</span> | <span title="&amp;Omega;">&Omega;</span> | <span title="&amp;omega;">&omega;</span> | <span title="&amp;Omicron;">&Omicron;</span> | <span title="&amp;omicron;">&omicron;</span> | <span title="&amp;oplus;">&oplus;</span> | <span title="&amp;or;">&or;</span> | <span title="&amp;ordf;">&ordf;</span> | <span title="&amp;ordm;">&ordm;</span> | <span title="&amp;Oslash;">&Oslash;</span> | <span title="&amp;oslash;">&oslash;</span> | <span title="&amp;Otilde;">&Otilde;</span> | <span title="&amp;otilde;">&otilde;</span> | <span title="&amp;otimes;">&otimes;</span> | <span title="&amp;Ouml;">&Ouml;</span> |- align=center | <span title="&amp;ouml;">&ouml;</span> | <span title="&amp;para;">&para;</span> | <span title="&amp;part;">&part;</span> | <span title="&amp;permil;">&permil;</span> | <span title="&amp;perp;">&perp;</span> | <span title="&amp;Phi;">&Phi;</span> | <span title="&amp;phi;">&phi;</span> | <span title="&amp;Pi;">&Pi;</span> | <span title="&amp;pi;">&pi;</span> | <span title="&amp;piv;">&piv;</span> | <span title="&amp;plusmn;">&plusmn;</span> | <span title="&amp;pound;">&pound;</span> | <span title="&amp;prime;">&prime;</span> | <span title="&amp;Prime;">&Prime;</span> | <span title="&amp;prod;">&prod;</span> | <span title="&amp;prop;">&prop;</span> | <span title="&amp;Psi;">&Psi;</span> | <span title="&amp;psi;">&psi;</span> | <span title="&amp;quot;">&quot;</span> | <span title="&amp;radic;">&radic;</span> | <span title="&amp;rang;">&rang;</span> | <span title="&amp;raquo;">&raquo;</span> | <span title="&amp;rarr;">&rarr;</span> | <span title="&amp;rArr;">&rArr;</span> | <span title="&amp;rceil;">&rceil;</span> | <span title="&amp;rdquo;">&rdquo;</span> | <span title="&amp;real;">&real;</span> | <span title="&amp;reg;">&reg;</span> | <span title="&amp;rfloor;">&rfloor;</span> | <span title="&amp;Rho;">&Rho;</span> | <span title="&amp;rho;">&rho;</span> | <span title="&amp;rlm;">&rlm;</span> |- align=center | <span title="&amp;rsaquo;">&rsaquo;</span> | <span title="&amp;rsquo;">&rsquo;</span> | <span title="&amp;sbquo;">&sbquo;</span> | <span title="&amp;Scaron;">&Scaron;</span> | <span title="&amp;scaron;">&scaron;</span> | <span title="&amp;sdot;">&sdot;</span> | <span title="&amp;sect;">&sect;</span> | <span title="&amp;shy;">&shy;</span> | <span title="&amp;Sigma;">&Sigma;</span> | <span title="&amp;sigma;">&sigma;</span> | <span title="&amp;sigmaf;">&sigmaf;</span> | <span title="&amp;sim;">&sim;</span> | <span title="&amp;spades;">&spades;</span> | <span title="&amp;sub;">&sub;</span> | <span title="&amp;sube;">&sube;</span> | <span title="&amp;sum;">&sum;</span> | <span title="&amp;sup;">&sup;</span> | <span title="&amp;sup1;">&sup1;</span> | <span title="&amp;sup2;">&sup2;</span> | <span title="&amp;sup3;">&sup3;</span> | <span title="&amp;supe;">&supe;</span> | <span title="&amp;szlig;">&szlig;</span> | <span title="&amp;Tau;">&Tau;</span> | <span title="&amp;tau;">&tau;</span> | <span title="&amp;there4;">&there4;</span> | <span title="&amp;Theta;">&Theta;</span> | <span title="&amp;theta;">&theta;</span> | <span title="&amp;thetasym;">&thetasym;</span> | <span title="&amp;thinsp;">&thinsp;</span> | <span title="&amp;THORN;">&THORN;</span> | <span title="&amp;thorn;">&thorn;</span> | <span title="&amp;tilde;">&tilde;</span> |- align=center | <span title="&amp;times;">&times;</span> | <span title="&amp;trade;">&trade;</span> | <span title="&amp;Uacute;">&Uacute;</span> | <span title="&amp;uacute;">&uacute;</span> | <span title="&amp;uarr;">&uarr;</span> | <span title="&amp;uArr;">&uArr;</span> | <span title="&amp;Ucirc;">&Ucirc;</span> | <span title="&amp;ucirc;">&ucirc;</span> | <span title="&amp;Ugrave;">&Ugrave;</span> | <span title="&amp;ugrave;">&ugrave;</span> | <span title="&amp;uml;">&uml;</span> | <span title="&amp;upsih;">&upsih;</span> | <span title="&amp;Upsilon;">&Upsilon;</span> | <span title="&amp;upsilon;">&upsilon;</span> | <span title="&amp;Uuml;">&Uuml;</span> | <span title="&amp;uuml;">&uuml;</span> | <span title="&amp;weierp;">&weierp;</span> | <span title="&amp;Xi;">&Xi;</span> | <span title="&amp;xi;">&xi;</span> | <span title="&amp;Yacute;">&Yacute;</span> | <span title="&amp;yacute;">&yacute;</span> | <span title="&amp;yen;">&yen;</span> | <span title="&amp;yuml;">&yuml;</span> | <span title="&amp;Yuml;">&Yuml;</span> | <span title="&amp;Zeta;">&Zeta;</span> | <span title="&amp;zeta;">&zeta;</span> | <span title="&amp;zwj;">&zwj;</span> | <span title="&amp;zwnj;">&zwnj;</span> |} __NOTOC__ 37fb96bf66d74a20a0575546696848d693db8890 Mediawiki 0 2622 2778 2012-04-16T10:48:32Z Satria 1 Die Seite wurde neu angelegt: „== Geschwindigkeit erhöhen == # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSetting…“ wikitext text/x-wiki == Geschwindigkeit erhöhen == # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed):<syntaxhighlight lang="php" enclose="div"> # Shared memory settings<br> ## $wgMainCacheType = CACHE_ACCEL;<br> ## $wgMessageCacheType = CACHE_ACCEL;<br> ## $wgCacheDirectory = '<SOME DIRECTORY>';<br> ## $wgParserCacheType = CACHE_ACCEL;<br> ## $wgMemCachedServers = array();<br> ## $wgUseGzip = true;<br> ## $wgEnableSidebarCache = true;<br> # NO DB HITS! ## $wgDisableCounters = true;<br> ## $wgMiserMode = true;<br> # Text cache ## $wgCompressRevisions = true;<br> ## $wgRevisionCacheExpiry = 3*24*3600;<br> ## $wgParserCacheExpireTime = 14*24*3600;<br> # Diffs ## $wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br> ## $wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';<br> # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. == Quellen == http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm 9aa49c735fb1d03dd6a5fe5413a60148720f088f 2779 2778 2012-04-16T10:53:54Z Satria 1 wikitext text/x-wiki == Geschwindigkeit erhöhen == # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed): <i>Shared memory settings</i><br> $wgMainCacheType = CACHE_ACCEL;<br> $wgMessageCacheType = CACHE_ACCEL;<br> $wgCacheDirectory = '<SOME DIRECTORY>';<br> $wgParserCacheType = CACHE_ACCEL;<br> $wgMemCachedServers = array();<br> $wgUseGzip = true;<br> $wgEnableSidebarCache = true;<br> <i>NO DB HITS!</i><br> $wgDisableCounters = true;<br> $wgMiserMode = true;<br> <i>Text cache</i><br> $wgCompressRevisions = true;<br> $wgRevisionCacheExpiry = 3*24*3600;<br> $wgParserCacheExpireTime = 14*24*3600;<br> # Diffs $wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br> $wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';<br> # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. == Quellen == http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast<br> http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm 1416468951eebb4a30680a57924e18ad047a6012 2780 2779 2012-04-16T11:00:03Z Satria 1 wikitext text/x-wiki == Geschwindigkeit erhöhen == === Aaron Schulz === # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed): <i>Shared memory settings</i><br> $wgMainCacheType = CACHE_ACCEL;<br> $wgMessageCacheType = CACHE_ACCEL;<br> $wgCacheDirectory = '<SOME DIRECTORY>';<br> $wgParserCacheType = CACHE_ACCEL;<br> $wgMemCachedServers = array();<br> $wgUseGzip = true;<br> $wgEnableSidebarCache = true;<br> <i>NO DB HITS!</i><br> $wgDisableCounters = true;<br> $wgMiserMode = true;<br> <i>Text cache</i><br> $wgCompressRevisions = true;<br> $wgRevisionCacheExpiry = 3*24*3600;<br> $wgParserCacheExpireTime = 14*24*3600;<br> # Diffs $wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br> $wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';<br> # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. [http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast] === Some variables === $wgDisableCounters = true; [http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm] $wgCheckSerialized = false; [http://www.gossamer-threads.com/lists/wiki/wikitech/156449] 4c32d482ccd75ec01f0a3c7c59602bf9aede35a8 2781 2780 2012-04-16T11:00:15Z Satria 1 wikitext text/x-wiki == Geschwindigkeit erhöhen == === Aaron Schulz === # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed): <i>Shared memory settings</i><br> $wgMainCacheType = CACHE_ACCEL;<br> $wgMessageCacheType = CACHE_ACCEL;<br> $wgCacheDirectory = '<SOME DIRECTORY>';<br> $wgParserCacheType = CACHE_ACCEL;<br> $wgMemCachedServers = array();<br> $wgUseGzip = true;<br> $wgEnableSidebarCache = true;<br> <i>NO DB HITS!</i><br> $wgDisableCounters = true;<br> $wgMiserMode = true;<br> <i>Text cache</i><br> $wgCompressRevisions = true;<br> $wgRevisionCacheExpiry = 3*24*3600;<br> $wgParserCacheExpireTime = 14*24*3600;<br> # Diffs $wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br> $wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';<br> # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. [http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast] === Some variables === $wgDisableCounters = true; [http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm]<br> $wgCheckSerialized = false; [http://www.gossamer-threads.com/lists/wiki/wikitech/156449] 0d82c4de5940e98c0db06649b7b70e466a8a7dbe 2791 2781 2014-08-22T10:09:54Z Satria 1 wikitext text/x-wiki == Geschwindigkeit erhöhen == === Aaron Schulz === # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed): <i>Shared memory settings</i><br> $wgMainCacheType = CACHE_ACCEL;<br> $wgMessageCacheType = CACHE_ACCEL;<br> $wgCacheDirectory = '<SOME DIRECTORY>';<br> $wgParserCacheType = CACHE_ACCEL;<br> $wgMemCachedServers = array();<br> $wgUseGzip = true;<br> $wgEnableSidebarCache = true;<br> <i>NO DB HITS!</i><br> $wgDisableCounters = true;<br> $wgMiserMode = true;<br> <i>Text cache</i><br> $wgCompressRevisions = true;<br> $wgRevisionCacheExpiry = 3*24*3600;<br> $wgParserCacheExpireTime = 14*24*3600;<br> # Diffs $wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br> $wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';<br> # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. [http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast] === Some variables === $wgDisableCounters = true; [http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm]<br> $wgCheckSerialized = false; [http://www.gossamer-threads.com/lists/wiki/wikitech/156449] == Starten aus einem Netzwerkpfad == Befindet sich das Basisverzeichnis des Webservers und/oder wikis auf einem Netzwerk, auf das per UNC zugegriffen wird (z.B. \\NAS\Folder1\...), muss eine Datei von mediawiki angepasst werden, da sonst die Pfadbildung fehlerhaft ist: includes\AutoLoader.php:<br> Alter Inhalt:<br> <code><poem> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' ) { global $IP; $filename = "$IP/$filename"; } </poem></code> Neuer Inhalt:<br> <code><poem> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' <b>&& substr ($filename, 0, 2) != "\\\\")</b> { global $IP; $filename = "$IP/$filename"; } </poem></code> 54fa5c4e93c514f2a5a49f47e375333a1bd860e0 2792 2791 2014-08-22T10:14:59Z Satria 1 /* Starten aus einem Netzwerkpfad */ wikitext text/x-wiki == Geschwindigkeit erhöhen == === Aaron Schulz === # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed): <i>Shared memory settings</i><br> $wgMainCacheType = CACHE_ACCEL;<br> $wgMessageCacheType = CACHE_ACCEL;<br> $wgCacheDirectory = '<SOME DIRECTORY>';<br> $wgParserCacheType = CACHE_ACCEL;<br> $wgMemCachedServers = array();<br> $wgUseGzip = true;<br> $wgEnableSidebarCache = true;<br> <i>NO DB HITS!</i><br> $wgDisableCounters = true;<br> $wgMiserMode = true;<br> <i>Text cache</i><br> $wgCompressRevisions = true;<br> $wgRevisionCacheExpiry = 3*24*3600;<br> $wgParserCacheExpireTime = 14*24*3600;<br> # Diffs $wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br> $wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';<br> # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. [http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast] === Some variables === $wgDisableCounters = true; [http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm]<br> $wgCheckSerialized = false; [http://www.gossamer-threads.com/lists/wiki/wikitech/156449] == Starten aus einem Netzwerkpfad == Befindet sich das Basisverzeichnis des Webservers und/oder wikis auf einem Netzwerk, auf das per UNC zugegriffen wird (z.B. \\NAS\Folder1\...), muss eine Datei von mediawiki angepasst werden, da sonst die Pfadbildung fehlerhaft ist: includes\AutoLoader.php:<br> Alter Inhalt:<br> <code><poem class="toccolours"> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' ) { global $IP; $filename = "$IP/$filename"; } </poem></code> Neuer Inhalt:<br> <code><poem class="toccolours"> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' <b>&& substr ($filename, 0, 2) != "\\\\")</b> { global $IP; $filename = "$IP/$filename"; } </poem></code> 9e8505f99fa04c8c59098b7eeb3150100b8f8b90 FritzBox 0 2623 2789 2012-05-17T10:06:02Z Satria 1 Die Seite wurde neu angelegt: „== Telnet ein/ausschalten == Die FritzBox Fon bietet ab einer bestimmten Firmware-Version die Möglichkeit, per angeschlossenem Telefon, den Telnet-Zugang ein- un…“ wikitext text/x-wiki == Telnet ein/ausschalten == Die FritzBox Fon bietet ab einer bestimmten Firmware-Version die Möglichkeit, per angeschlossenem Telefon, den Telnet-Zugang ein- und auszuschalten: <pre> #96*7* Telnet ein #96*8* Telnet aus </pre> 83b2d780d7bc939f86af6247980c3b8546736e2c 2790 2789 2012-05-17T11:52:42Z Satria 1 wikitext text/x-wiki == Telnet ein/ausschalten == Die FritzBox Fon bietet ab einer bestimmten Firmware-Version die Möglichkeit, per angeschlossenem Telefon, den Telnet-Zugang ein- und auszuschalten: <pre> #96*7* Telnet ein #96*8* Telnet aus </pre> == AR7.cfg == In dieser Datei finden sich viele Einstellungen, die über die Oberfläche abgespeichert werden. Manche von ihnen sind aber nicht über die Oberfläche steuerbar. So z.B. die Zuordnung von MAC-Adressen zu IP-Adressen des DHCP Servers.<br> Die Datei ist (über telnet) hier zu finden: <pre>/var/flash/ar7.cfg</pre> und kann per "nvi" Editor editiert werden. 0975c9e4ccdc29d54afea7e5390128c9e730c186 Ladeluftkühler 0 2624 2795 2014-09-04T12:44:51Z Satria 1 Die Seite wurde neu angelegt: „== Designs == * Bar and Plate * Tube and Fin * Delta Fin == Vergleiche == === Pro & Cons === <poem> The following info applies to air to air applications. Tu…“ wikitext text/x-wiki == Designs == * Bar and Plate * Tube and Fin * Delta Fin == Vergleiche == === Pro & Cons === <poem> The following info applies to air to air applications. Tube and Fin - Pros Generally weighs about half as much as a bar and plate core of similar dimensions Generally less expensive Generally less flow restriction within the core than bar and plate designs Less flow restriction through the exterior allowing better flow to the rear of the core and to a radiator, AC condenser, tranny or oil cooler, etc. which may be behind it Cons - Those with less flow restriction than bar and plate cores offer less heat rejection Generally have more fins which means they're more likely to be damaged by rocks/debris which cuts down on cooling efficiency Charge air entry extends beyond core wall making it more difficult for air to enter the core cleanly Bar and Plate - Pros Generally off greater heat rejection than tube and fin design Those with turbulators offer even greater heat rejection Offered in tons of varying shapes and sizes Less likely to be damaged by rocks and debris Charge air entry sits flush with core allowing for cleaner entry Cons - Weighs about twice as much as a similarly size tube and fin core More expensive Blocks more airflow to radiators, etc. which may be behind it Those with turbulators have greater flow resistance to the charge air Remember that there's a balancing act between cooling and airflow restriction within the core. The more densely packed turbulators are within a bar and plate core the more cooling will be done as the air passes through, but the greater flow is restricted. Alternatively, air blowing straight through a pipe isn't restricted or cooled much at all. </poem> === Ladeluftkühlung allgemein === <poem> On this page, you will learn nearly everything about intercoolers and how they function.. We will explain everything from the basic design, tube types, internal design and upsides and downsides of each. At the end we describe Extreme Turbo Systems intercooler design. Tube Design: First we will discuss the two main types of tube design, square tube and oval tube. The square tube is used in bar & plate core, and the oval tube are used in the tube and fin and hybrid fin cores. The following two pictures show the tube design as if you were looking down the length of the core. Usually when looking at an intercooler that is installed on a vehicle, you see the front/back side of the tubes, either the flat end of the bar and plate, or the rounded nose of the tube and fin. Cores are usually rated based on height, where there is usually one tube per inch of height and rated in cfm. Square Tube: Oval Tube: Bar Tube Ambient Airflow: Between the two tube designs, external ambient airflow through the core is different. With the square nose design of the bar and plate, the flow of ambient air through the core is slightly worse than the tube and fin due to wind deflection off of the square face. Usually this is not an issue on core thicknesses up to 4" thick. In some cases with thicker cores, the bar and plate may cause some vehicles to run a couple degrees hotter at low speed. At higher speeds above 40 mph there is rarely an issue. Square Tube Ambient Airflow Oval Tube Ambient Airflow Bar Airflow Tube Airflow Internal Tube Design: Next we will discuss the 3 main types of core design--bar and plate, extruded tube and fin, and hybrid fin. Bar and Plate: The bar and plate design uses a square tube with a fine internal fin packing. This fine internal fin packing allows this type of core to be very efficient but due to the turbulence caused by the larger amount of fins, flow is slightly sacrificed. Since the square tube has a larger internal area compared to a oval tube of the same thickness this core still flows more air per tube compared to the other two designs.. The upsides of this core is the high efficiency and it is available in thicknesses from 3" to 5". The downside is that due to the square nose design, ambient airflow through the core is somewhat sacrificed. Extruded Tube & Fin: Extruded Tube and fin design uses a oval tube with an extruded fin that is molded into the tube when it is built. The fin packing is not very dense which lowers the efficiency of the core but allows it to flow more air through each tube because there is less turbulence caused by the internal fins. A lot of the time the air charge will nto contact any of the fins as it travels through the core. There are several types of extruded tube and fin designs, but it is usually the least desirable since it has the lowest efficiency therefore the lowest temperature drop across the core. This can commonly lead to heat soak. The upside to this type of core is that due to the oval nose design it allows more ambient airflow through the core compared to the bar and plate and because the fin packing is not as dense, it flows well through the core (internally). The downside is that the core design is very inefficient. Hybrid Fin: This design is a hybrid between the bar and plate and tube and fin. This type of tube uses the oval tube like the tube and fin and the dense internal fin packing like the bar and plate. The upside to this design is that it is nearly as efficient as the bar and plate, and allows more ambient airflow through the core (external airflow). The downside of this type of core is that the thickest core that is usually offered in this type is between 2.5" to 3" thick and becoming difficult to find. Griffin uses a hybrid fin type core, but the tubes are taller than average which flow well, but since the heat has to travel so far from the center of the fin to the tube wall it slightly lowers the efficiency but with the larger tube, improves airflow through the core. Bar and Plate Tube and Fin Hybrid Fin Bar & Plate Extruded Tube Fin Packing: Here we talk about the fin packing, internal and external design. For the intercoolers that use a fine internal fin packing there are two configurations. There is the standard packing and there is the staggered fin packing. In the standard fin packing all of the fins are in-line. If you look down the tube of this design you will usually see light through the other end. In the staggered fin packing the fins are staggered so more of the air comes into contact with the fins. If you look down the tube in this design you will rarely see any light from the other end. This design is superior because it is more efficient from the air coming into contact with more fins, but will slightly hinder flow but not significantly unless it very densly packed. There are some companies that use a very dense fin packing which is one of the most efficient on the market, but also flows the least because of it. The same applies for the external fin packing between each tube. The external fin packing is usually heavier since they are exposed to oncoming objects such as rocks and debris found on the road. Fin Design: Another factor that affects efficiency is the fin design. Fins are commonly just thin, flat pieces of aluminum. In some cases these fins are "louvered", similar to what a cheese grater would look like. These little louvers help catch the air and direct it through the fin and improve efficiency allowing the air to contact more of the fins surface area instead of just the leading edge of the fin. Standard Fin Packing Staggered Fin Packing Inline Fins Staggered Fins Core Configuration: There are two configurations for air to air intercoolers. Crossflow and Vertical Flow. In the pictures below, the tubes are shown in light gray with the fin packing between each tube. The crossflow are the better design because of the effiency of the longer core. Because of the longer core the air stays in the core longer allowing it to draw more heat out of the air charge. Since the crossflow is shorter in height (ie less amount of tubes) it does not flow as much as a Vertical flow core. The vertical flow core, since it has more tubes it flows significantly more air, but because the core is shorter in length, the air doesn't stay in the core long enough to draw a lot of heat out of the air charge. Vertical flow cores work well with very high horsepower applications and is usually recommended for supercharged applications. Crossflow Core (7 Long Tubes) Vertical Flow Core (19 Short Tubes) Crossflow Core Vertical Flow Core Internal Airflow: As airflow travels through an intercooler it chooses the shortest path through the core. In the diagram below it shows a core with 7 tubes, lets say each tube flows 100cfm for a total of 700cfm. If you are only flowing 300 cfm through the core you are really only using 3 of the tubes, the ones directly between the inlet and outlet. As flow increases, it will begin using the upper tubes. This will also help when mounting the intercooler. If the bottom rows were covered by the bumper and the upper tubes were exposed you would not be receiving the maximum performance possible from the intercooler. Internal Airflow @ 300cfm Extreme Turbo Systems Core: In our quest to develop the best core possible, we tried and tested many cores on the market. In the end we've come to a final product that offers maximum efficiency and maximum flow without making large sacrifices of either one. We took features of some of the better cores on the market and created our own design which we believe is the best on the market. Our Internal Fin Design: We created an internal fin packing that is staggered and louvered. We were careful to make sure the packing didn't become too dense, sacraficing airflow, but not too light and lowering the efficiency. We found the perfect medium. Our External Fin Design: Many companies use the same size fin throughout the external fin packing. We created an external fin packing that resists damage from debris yet also increase efficiency. Our core uses heavy duty fins near the front and back of the intercooler core, but as you get closer to the center of the core the fin packing becomes finer and more dense. These small fins transfer heat faster. The combo of these fine external fins and fine internal fins allow our core to be highly efficient internally AND externally. Intercooler Tanks: With our intercooler assemblies comes a limited lifetime warranty against manufacturer defects. We use heavy duty aluminum on our custom fabricated tanks. Since the weakest point of the intercooler assembly is commonly the welds, we double welded the tanks at the seams on the inside AND outside. The inlet and outlets are hand ported to make sure there is a smooth transition into the itank and then beadrolled so that a hose can be clamped on securely. In some cases we have cast aluminum tanks where the only weld is where the tank is welded to the core. Final Product: After each intercooler is built we pressure test the whole assembly to 35psi to make sure there are no leaks. All of the welds are inspected to assure they are all up to our quality standards and are visually appealing. The final product is inspected twice for quality, once by a shop team member and once by the owner of Extreme Turbo Systems before it is boxed and shipped to the customer. </poem> == Quellen == http://forums.evolutionm.net/evo-engine-turbo-drivetrain/174367-intercooler-tech-bar-plate-vs-tube-fin.html<br> http://www.extremeintercoolers.com/tech.html 3636e44713b3269a305cab7fee3bb307e2c92b43 2839 2795 2017-11-13T12:19:33Z Satria 1 Strukturänderungen wikitext text/x-wiki == Designs == * Bar and Plate * Tube and Fin * Delta Fin == Vergleiche == The following info applies to air to air applications. === Tube and Fin === '''Pros''' ---- *Generally weighs about half as much as a bar and plate core of similar dimensions *Generally less expensive *Generally less flow restriction within the core than bar and plate designs *Less flow restriction through the exterior allowing better flow to the rear of the core and to a radiator, AC condenser, tranny or oil cooler, etc. which may be behind it '''Cons''' ---- *Those with less flow restriction than bar and plate cores offer less heat rejection *Generally have more fins which means they're more likely to be damaged by rocks/debris which cuts down on cooling efficiency *Charge air entry extends beyond core wall making it more difficult for air to enter the core cleanly === Bar and Plate === '''Pros''' ---- *Generally off greater heat rejection than tube and fin design *Those with turbulators offer even greater heat rejection *Offered in tons of varying shapes and sizes *Less likely to be damaged by rocks and debris *Charge air entry sits flush with core allowing for cleaner entry '''Cons''' ---- *Weighs about twice as much as a similarly size tube and fin core *More expensive *Blocks more airflow to radiators, etc. which may be behind it *Those with turbulators have greater flow resistance to the charge air Remember that there's a balancing act between cooling and airflow restriction within the core. The more densely packed turbulators are within a bar and plate core the more cooling will be done as the air passes through, but the greater flow is restricted. Alternatively, air blowing straight through a pipe isn't restricted or cooled much at all. == Ladeluftkühlung allgemein == '''This section is not yet structured well, sorry!''' On this page, you will learn nearly everything about intercoolers and how they function.. We will explain everything from the basic design, tube types, internal design and upsides and downsides of each. At the end we describe Extreme Turbo Systems intercooler design. Tube Design: First we will discuss the two main types of tube design, square tube and oval tube. The square tube is used in bar & plate core, and the oval tube are used in the tube and fin and hybrid fin cores. The following two pictures show the tube design as if you were looking down the length of the core. Usually when looking at an intercooler that is installed on a vehicle, you see the front/back side of the tubes, either the flat end of the bar and plate, or the rounded nose of the tube and fin. Cores are usually rated based on height, where there is usually one tube per inch of height and rated in cfm. Square Tube: Oval Tube: Bar Tube Ambient Airflow: Between the two tube designs, external ambient airflow through the core is different. With the square nose design of the bar and plate, the flow of ambient air through the core is slightly worse than the tube and fin due to wind deflection off of the square face. Usually this is not an issue on core thicknesses up to 4" thick. In some cases with thicker cores, the bar and plate may cause some vehicles to run a couple degrees hotter at low speed. At higher speeds above 40 mph there is rarely an issue. Square Tube Ambient Airflow Oval Tube Ambient Airflow Bar Airflow Tube Airflow Internal Tube Design: Next we will discuss the 3 main types of core design--bar and plate, extruded tube and fin, and hybrid fin. Bar and Plate: The bar and plate design uses a square tube with a fine internal fin packing. This fine internal fin packing allows this type of core to be very efficient but due to the turbulence caused by the larger amount of fins, flow is slightly sacrificed. Since the square tube has a larger internal area compared to a oval tube of the same thickness this core still flows more air per tube compared to the other two designs.. The upsides of this core is the high efficiency and it is available in thicknesses from 3" to 5". The downside is that due to the square nose design, ambient airflow through the core is somewhat sacrificed. Extruded Tube & Fin: Extruded Tube and fin design uses a oval tube with an extruded fin that is molded into the tube when it is built. The fin packing is not very dense which lowers the efficiency of the core but allows it to flow more air through each tube because there is less turbulence caused by the internal fins. A lot of the time the air charge will nto contact any of the fins as it travels through the core. There are several types of extruded tube and fin designs, but it is usually the least desirable since it has the lowest efficiency therefore the lowest temperature drop across the core. This can commonly lead to heat soak. The upside to this type of core is that due to the oval nose design it allows more ambient airflow through the core compared to the bar and plate and because the fin packing is not as dense, it flows well through the core (internally). The downside is that the core design is very inefficient. Hybrid Fin: This design is a hybrid between the bar and plate and tube and fin. This type of tube uses the oval tube like the tube and fin and the dense internal fin packing like the bar and plate. The upside to this design is that it is nearly as efficient as the bar and plate, and allows more ambient airflow through the core (external airflow). The downside of this type of core is that the thickest core that is usually offered in this type is between 2.5" to 3" thick and becoming difficult to find. Griffin uses a hybrid fin type core, but the tubes are taller than average which flow well, but since the heat has to travel so far from the center of the fin to the tube wall it slightly lowers the efficiency but with the larger tube, improves airflow through the core. Bar and Plate Tube and Fin Hybrid Fin Bar & Plate Extruded Tube Fin Packing: Here we talk about the fin packing, internal and external design. For the intercoolers that use a fine internal fin packing there are two configurations. There is the standard packing and there is the staggered fin packing. In the standard fin packing all of the fins are in-line. If you look down the tube of this design you will usually see light through the other end. In the staggered fin packing the fins are staggered so more of the air comes into contact with the fins. If you look down the tube in this design you will rarely see any light from the other end. This design is superior because it is more efficient from the air coming into contact with more fins, but will slightly hinder flow but not significantly unless it very densly packed. There are some companies that use a very dense fin packing which is one of the most efficient on the market, but also flows the least because of it. The same applies for the external fin packing between each tube. The external fin packing is usually heavier since they are exposed to oncoming objects such as rocks and debris found on the road. Fin Design: Another factor that affects efficiency is the fin design. Fins are commonly just thin, flat pieces of aluminum. In some cases these fins are "louvered", similar to what a cheese grater would look like. These little louvers help catch the air and direct it through the fin and improve efficiency allowing the air to contact more of the fins surface area instead of just the leading edge of the fin. Standard Fin Packing Staggered Fin Packing Inline Fins Staggered Fins Core Configuration: There are two configurations for air to air intercoolers. Crossflow and Vertical Flow. In the pictures below, the tubes are shown in light gray with the fin packing between each tube. The crossflow are the better design because of the effiency of the longer core. Because of the longer core the air stays in the core longer allowing it to draw more heat out of the air charge. Since the crossflow is shorter in height (ie less amount of tubes) it does not flow as much as a Vertical flow core. The vertical flow core, since it has more tubes it flows significantly more air, but because the core is shorter in length, the air doesn't stay in the core long enough to draw a lot of heat out of the air charge. Vertical flow cores work well with very high horsepower applications and is usually recommended for supercharged applications. Crossflow Core (7 Long Tubes) Vertical Flow Core (19 Short Tubes) Crossflow Core Vertical Flow Core Internal Airflow: As airflow travels through an intercooler it chooses the shortest path through the core. In the diagram below it shows a core with 7 tubes, lets say each tube flows 100cfm for a total of 700cfm. If you are only flowing 300 cfm through the core you are really only using 3 of the tubes, the ones directly between the inlet and outlet. As flow increases, it will begin using the upper tubes. This will also help when mounting the intercooler. If the bottom rows were covered by the bumper and the upper tubes were exposed you would not be receiving the maximum performance possible from the intercooler. Internal Airflow @ 300cfm Extreme Turbo Systems Core: In our quest to develop the best core possible, we tried and tested many cores on the market. In the end we've come to a final product that offers maximum efficiency and maximum flow without making large sacrifices of either one. We took features of some of the better cores on the market and created our own design which we believe is the best on the market. Our Internal Fin Design: We created an internal fin packing that is staggered and louvered. We were careful to make sure the packing didn't become too dense, sacraficing airflow, but not too light and lowering the efficiency. We found the perfect medium. Our External Fin Design: Many companies use the same size fin throughout the external fin packing. We created an external fin packing that resists damage from debris yet also increase efficiency. Our core uses heavy duty fins near the front and back of the intercooler core, but as you get closer to the center of the core the fin packing becomes finer and more dense. These small fins transfer heat faster. The combo of these fine external fins and fine internal fins allow our core to be highly efficient internally AND externally. Intercooler Tanks: With our intercooler assemblies comes a limited lifetime warranty against manufacturer defects. We use heavy duty aluminum on our custom fabricated tanks. Since the weakest point of the intercooler assembly is commonly the welds, we double welded the tanks at the seams on the inside AND outside. The inlet and outlets are hand ported to make sure there is a smooth transition into the itank and then beadrolled so that a hose can be clamped on securely. In some cases we have cast aluminum tanks where the only weld is where the tank is welded to the core. Final Product: After each intercooler is built we pressure test the whole assembly to 35psi to make sure there are no leaks. All of the welds are inspected to assure they are all up to our quality standards and are visually appealing. The final product is inspected twice for quality, once by a shop team member and once by the owner of Extreme Turbo Systems before it is boxed and shipped to the customer. </poem> == Quellen == http://forums.evolutionm.net/evo-engine-turbo-drivetrain/174367-intercooler-tech-bar-plate-vs-tube-fin.html<br> http://www.extremeintercoolers.com/tech.html 0eba35687df1945da82ce9825bae2cc055fcfe8d Datei:IrfanView Extra-Status.png 6 2625 2797 2014-09-10T10:46:05Z Satria 1 EXIF Informationen in der IrfanView Statusleiste wikitext text/x-wiki EXIF Informationen in der IrfanView Statusleiste 5f03c54c9f978fb6528663bd269e84bbf6df9455 IrfanView 0 2626 2798 2014-09-10T10:48:32Z Satria 1 Die Seite wurde neu angelegt: „== Statusleiste == Man hat die Möglichkeit, sich den letzen Teil der Statusleiste selbst zu konfigueren. Hier ein Beispiel:<br> [[Datei:IrfanView_Extra-Status…“ wikitext text/x-wiki == Statusleiste == Man hat die Möglichkeit, sich den letzen Teil der Statusleiste selbst zu konfigueren. Hier ein Beispiel:<br> [[Datei:IrfanView_Extra-Status.png]] Diese Informationen erhält man mit dieser Konfiguration unter "Anzeige" in den Einstellungen:<br> Statusleisten-Text (rechts): <code>Kamera: $E272 / ISO: $E34855 / Blende: $E33437 / Belichtungszeit: $E33434 / Brennweite: $E37386</code> 99449aa8829adaba2aeb094dcbb0a091b93a4ece 2835 2798 2017-08-23T12:26:44Z Satria 1 Max.Blende hinzugefügt wikitext text/x-wiki == Statusleiste == Man hat die Möglichkeit, sich den letzen Teil der Statusleiste selbst zu konfigueren. Hier ein Beispiel:<br> [[Datei:IrfanView_Extra-Status.png]] Diese Informationen erhält man mit dieser Konfiguration unter "Anzeige" in den Einstellungen:<br> Statusleisten-Text (rechts): <code>Kamera: $E272 / ISO: $E34855 / Blende: $E33437 / Belichtungszeit: $E33434 / Brennweite: $E37386 / Max.Blende: $E37381</code> a5a13320e35d0642af3d4cdc182b18530377475e Windows 7 & 8 0 758 2801 2793 2015-01-03T02:45:57Z Satria 1 verschob „[[Windows 7]]“ nach „[[Windows 7 & 8]]“ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Test-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html CLSID key list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 2a55da31029314541fb416510bf3ae6995bf09e9 2803 2801 2015-01-03T02:50:28Z Satria 1 Win 8 CLSIDs und Shell Commands wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Test-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 1df44ced2ed1f78df4c6deb83c4b3196f2bd261c 2806 2803 2016-03-09T09:17:28Z Satria 1 GWX und Telemetrieupdates wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Telemetry und GMW Updates == Es gibt Updates für Windows 7, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetry) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB3021917 (Telemetry) * KB3022345 (Telemetry) * KB3035583 (Windows 10) * KB3044374 (Telemetry) * KB3050265 (Telemetry) * KB3065987 (Telemetry) * KB3068708 (Telemetry) * KB3075249 (Telemetry) * KB3078667 (Telemetry) * KB3079821 (Windows 10) * KB3080149 (Telemetry) * KB3081954 (Telemetry) * KB3083324 (Telemetry) * KB3083710 (Telemetry) * KB3102810 (Windows 10) * KB3112343 (Windows 10) === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 52e7812110e5edc0d7a6be92bd385a6b43b32843 2807 2806 2016-03-09T09:29:18Z Satria 1 /* Telemetry und GMW Updates */ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = 1 (REG_DWORD)</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = dword:a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 6c6319995981e1a56cbfcdce9c9a6d1bb8851b8b 2808 2807 2016-03-17T11:41:42Z Satria 1 MSI verbose logging wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = (REG_DWORD) 1</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = (REG_DWORD) a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == MSI verbose logging == Bei Fehlern des MSI (MicroSoft Installer), wie dem Exit Code 1603, der sehr allgemein bedeutet, dass etwas nicht funktioniert hat, kann es hilfreich sein, das verbose logging zu aktivieren. Das geschieht über 2 Registry-Werte: <pre> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Debug = (REG_DWORD) 7 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Logging = (REG_SZ) voicewarmupx! == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] ebf1bf46dfb9d062104d359dfdfd52233b75d255 2809 2808 2016-03-17T11:43:19Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = (REG_DWORD) 1</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = (REG_DWORD) a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == MSI verbose logging == Bei Fehlern des MSI (MicroSoft Installer), wie dem Exit Code 1603, der sehr allgemein bedeutet, dass etwas nicht funktioniert hat, kann es hilfreich sein, das verbose logging zu aktivieren. Das geschieht über 2 Registry-Werte: <pre> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Debug = (REG_DWORD) 7 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Logging = (REG_SZ) voicewarmupx! </pre> === Quellen === [https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs] == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 3e444daeea2dbfad223684f955b00f1d80b22ffe 2810 2809 2016-05-28T10:16:39Z Satria 1 /* Winsxs Ordner */ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = (REG_DWORD) 1</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = (REG_DWORD) a9400100</pre> (noch unbestätigt) == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Versteckte Geräte im Gerätemanager == Es gibt eine Möglichkeit, sich auch die Geräte im Gerätemanager von Windows anzeigen zu lassen, die man sonst nie zu Gesicht bekommt. Dazu ist es notwendig, 2 Umgebungsvariablen zu setzen: <code> Start->Einstellungen->Systemsteuerung->System. Erweitert->Umgebungsvariablen </code> Hier werden jetzt in der Box "Systemvariablen" folgen neue Einträge gemacht: <code><poem> 1) Name der Variablen: Devmgr_show_details Wert der Variablen: 1 2) Name der Variablen: Devmgr_show_nonpresent_devices Wert der Variablen: 1 </poem></code> Alles mit OK bestätigen. Wenn man nun im Gerätemanager Ansicht->Ausgeblendete Geräte anzeigen aktiviert, sieht man alle eingetragenen Geräte, auch wenn diese grad physikalisch nicht vorhanden sind. So kann man dort einiges aufräuemn, was mit der Zeit z.B. doppelt vorhanden ist oder nie mehr vorhanden sein wird etc... Ist aber wie immer mit Vorsicht zu genießen, und man sollte wissen, was man tut. == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == MSI verbose logging == Bei Fehlern des MSI (MicroSoft Installer), wie dem Exit Code 1603, der sehr allgemein bedeutet, dass etwas nicht funktioniert hat, kann es hilfreich sein, das verbose logging zu aktivieren. Das geschieht über 2 Registry-Werte: <pre> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Debug = (REG_DWORD) 7 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Logging = (REG_SZ) voicewarmupx! </pre> === Quellen === [https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs] == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 66cac8527659e5f8a4111c1576123030727acc62 2823 2810 2016-08-07T01:43:39Z Satria 1 Sortierung wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = (REG_DWORD) 1</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = (REG_DWORD) a9400100</pre> (noch unbestätigt) == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == MSI verbose logging == Bei Fehlern des MSI (MicroSoft Installer), wie dem Exit Code 1603, der sehr allgemein bedeutet, dass etwas nicht funktioniert hat, kann es hilfreich sein, das verbose logging zu aktivieren. Das geschieht über 2 Registry-Werte: <pre> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Debug = (REG_DWORD) 7 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Logging = (REG_SZ) voicewarmupx! </pre> === Quellen === [https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs] == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Versteckte Geräte im Gerätemanager == Es gibt eine Möglichkeit, sich auch die Geräte im Gerätemanager von Windows anzeigen zu lassen, die man sonst nie zu Gesicht bekommt. Dazu ist es notwendig, 2 Umgebungsvariablen zu setzen: <code> Start->Einstellungen->Systemsteuerung->System. Erweitert->Umgebungsvariablen </code> Hier werden jetzt in der Box "Systemvariablen" folgen neue Einträge gemacht: <code><poem> 1) Name der Variablen: Devmgr_show_details Wert der Variablen: 1 2) Name der Variablen: Devmgr_show_nonpresent_devices Wert der Variablen: 1 </poem></code> Alles mit OK bestätigen. Wenn man nun im Gerätemanager Ansicht->Ausgeblendete Geräte anzeigen aktiviert, sieht man alle eingetragenen Geräte, auch wenn diese grad physikalisch nicht vorhanden sind. So kann man dort einiges aufräuemn, was mit der Zeit z.B. doppelt vorhanden ist oder nie mehr vorhanden sein wird etc... Ist aber wie immer mit Vorsicht zu genießen, und man sollte wissen, was man tut. == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 9878fc0d23b8df9a069a3d912cdb407c651fea02 2824 2823 2016-08-07T01:44:38Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = (REG_DWORD) 1</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = (REG_DWORD) a9400100</pre> (noch unbestätigt) == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == MSI verbose logging == Bei Fehlern des MSI (MicroSoft Installer), wie dem Exit Code 1603, der sehr allgemein bedeutet, dass etwas nicht funktioniert hat, kann es hilfreich sein, das verbose logging zu aktivieren. Das geschieht über 2 Registry-Werte: <pre> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Debug = (REG_DWORD) 7 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Logging = (REG_SZ) voicewarmupx! </pre> === Quellen === [https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs] == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Versteckte Geräte im Gerätemanager == Es gibt eine Möglichkeit, sich auch die Geräte im Gerätemanager von Windows anzeigen zu lassen, die man sonst nie zu Gesicht bekommt. Dazu ist es notwendig, 2 Umgebungsvariablen zu setzen: <code> Start->Einstellungen->Systemsteuerung->System. Erweitert->Umgebungsvariablen </code> Hier werden jetzt in der Box "Systemvariablen" folgen neue Einträge gemacht: <code><poem> 1) Name der Variablen: Devmgr_show_details Wert der Variablen: 1 2) Name der Variablen: Devmgr_show_nonpresent_devices Wert der Variablen: 1 </poem></code> Alles mit OK bestätigen. Wenn man nun im Gerätemanager Ansicht->Ausgeblendete Geräte anzeigen aktiviert, sieht man alle eingetragenen Geräte, auch wenn diese grad physikalisch nicht vorhanden sind. So kann man dort einiges aufräuemn, was mit der Zeit z.B. doppelt vorhanden ist oder nie mehr vorhanden sein wird etc... Ist aber wie immer mit Vorsicht zu genießen, und man sollte wissen, was man tut. == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 2932ea923021086fb58e39eae4b0369158e8ecfd 2826 2824 2016-08-07T01:51:45Z Satria 1 Neu: Kompatibilitätseinstellungen wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = (REG_DWORD) 1</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = (REG_DWORD) a9400100</pre> (noch unbestätigt) == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Kompatibilitätseinstellungen von Anwendungen == [[Datei:Windows-Kompatibilität.png|right|thumb]]Diese Einstellungen rechts werden in der Registry hier abgelegt: <pre>HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers</pre> <br clear="all"> == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == MSI verbose logging == Bei Fehlern des MSI (MicroSoft Installer), wie dem Exit Code 1603, der sehr allgemein bedeutet, dass etwas nicht funktioniert hat, kann es hilfreich sein, das verbose logging zu aktivieren. Das geschieht über 2 Registry-Werte: <pre> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Debug = (REG_DWORD) 7 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Logging = (REG_SZ) voicewarmupx! </pre> === Quellen === [https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs] == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Versteckte Geräte im Gerätemanager == Es gibt eine Möglichkeit, sich auch die Geräte im Gerätemanager von Windows anzeigen zu lassen, die man sonst nie zu Gesicht bekommt. Dazu ist es notwendig, 2 Umgebungsvariablen zu setzen: <code> Start->Einstellungen->Systemsteuerung->System. Erweitert->Umgebungsvariablen </code> Hier werden jetzt in der Box "Systemvariablen" folgen neue Einträge gemacht: <code><poem> 1) Name der Variablen: Devmgr_show_details Wert der Variablen: 1 2) Name der Variablen: Devmgr_show_nonpresent_devices Wert der Variablen: 1 </poem></code> Alles mit OK bestätigen. Wenn man nun im Gerätemanager Ansicht->Ausgeblendete Geräte anzeigen aktiviert, sieht man alle eingetragenen Geräte, auch wenn diese grad physikalisch nicht vorhanden sind. So kann man dort einiges aufräuemn, was mit der Zeit z.B. doppelt vorhanden ist oder nie mehr vorhanden sein wird etc... Ist aber wie immer mit Vorsicht zu genießen, und man sollte wissen, was man tut. == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] f99afeaf16f8307a92ed1a9245af67e7ac7aafa8 2827 2826 2016-08-07T01:53:20Z Satria 1 /* Kompatibilitätseinstellungen von Anwendungen */ wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = (REG_DWORD) 1</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = (REG_DWORD) a9400100</pre> (noch unbestätigt) == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Kompatibilitätseinstellungen von Anwendungen == [[Datei:Windows-Kompatibilität.png|right|thumb]]Diese Einstellungen rechts werden in der Registry hier abgelegt: <code><poem class="toccolours"> HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers </poem></code> <br clear="all"> == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == MSI verbose logging == Bei Fehlern des MSI (MicroSoft Installer), wie dem Exit Code 1603, der sehr allgemein bedeutet, dass etwas nicht funktioniert hat, kann es hilfreich sein, das verbose logging zu aktivieren. Das geschieht über 2 Registry-Werte: <pre> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Debug = (REG_DWORD) 7 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Logging = (REG_SZ) voicewarmupx! </pre> === Quellen === [https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs] == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Versteckte Geräte im Gerätemanager == Es gibt eine Möglichkeit, sich auch die Geräte im Gerätemanager von Windows anzeigen zu lassen, die man sonst nie zu Gesicht bekommt. Dazu ist es notwendig, 2 Umgebungsvariablen zu setzen: <code> Start->Einstellungen->Systemsteuerung->System. Erweitert->Umgebungsvariablen </code> Hier werden jetzt in der Box "Systemvariablen" folgen neue Einträge gemacht: <code><poem> 1) Name der Variablen: Devmgr_show_details Wert der Variablen: 1 2) Name der Variablen: Devmgr_show_nonpresent_devices Wert der Variablen: 1 </poem></code> Alles mit OK bestätigen. Wenn man nun im Gerätemanager Ansicht->Ausgeblendete Geräte anzeigen aktiviert, sieht man alle eingetragenen Geräte, auch wenn diese grad physikalisch nicht vorhanden sind. So kann man dort einiges aufräuemn, was mit der Zeit z.B. doppelt vorhanden ist oder nie mehr vorhanden sein wird etc... Ist aber wie immer mit Vorsicht zu genießen, und man sollte wissen, was man tut. == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html] 62cec2ce724c66c96770b8678e8776e8656a132e FarCry4 0 2627 2805 2015-03-26T11:34:08Z Satria 1 Die Seite wurde neu angelegt: „== Tweaks == Die Konfigurationsdatei befindet sich hier:<br> <code>Meine Spiele\Far Cry 4\GamerProfile.xml</code> === Graphic tweaks === DisableLoadingMip0 0 …“ wikitext text/x-wiki == Tweaks == Die Konfigurationsdatei befindet sich hier:<br> <code>Meine Spiele\Far Cry 4\GamerProfile.xml</code> === Graphic tweaks === DisableLoadingMip0 0 -> 1<br> GPUMaxBufferedFrames 0 --> 3<br> === Mausbeschleunigung abschalten === Smoothness 1 --> 0<br> Smoothness_Ironsight 1 --> 0<br> === Zoom beibehalten === IronsightToggleMode 0 --> 1 === Intro-Animationen abschalten === '''Diese Tipps funktionieren leider nicht mehr'''<br> PlayPVPIntroVideo 1 --> 0<br> steam_api.dll (from a steam game's folder) --> Far Cry 4\bin<br> -skipintro in shortcut<br> 25326ded2e8d02a35d443af3c7e05732539ac3d5 Edelstahl 0 2628 2812 2016-07-07T11:37:30Z Satria 1 Die Seite wurde neu angelegt: „== V2A (CrNi) == === 1.4301 (X5CrNi18/10) === === 1.4305 (X8CrNi18-9) === 1.4307 === === 1.4541 (X6CrNiTi18-10) === bis 550°C (bis 900°C?) == V4A (CrNiMo) =…“ wikitext text/x-wiki == V2A (CrNi) == === 1.4301 (X5CrNi18/10) === === 1.4305 (X8CrNi18-9) === 1.4307 === === 1.4541 (X6CrNiTi18-10) === bis 550°C (bis 900°C?) == V4A (CrNiMo) == === 1.4401 === bis 550°C === 1.4571 (X6CrNiMoTi17-12-2) === bis 550°C === 1.4404 === == Quellen == [http://www.edelstahl-rostfrei.de/page.asp?pageID=1574 http://www.edelstahl-rostfrei.de/page.asp?pageID=1574]<br> [https://www.dew-stahl.com/service/technische-bibliothekbroschueren/werkstoffdatenblaetter/rsh-staehle/ https://www.dew-stahl.com/service/technische-bibliothekbroschueren/werkstoffdatenblaetter/rsh-staehle/] 7dc06d8d7a3e39210852f9f724d6288c660ea8c7 2813 2812 2016-07-07T12:25:56Z Satria 1 wikitext text/x-wiki == V2A (CrNi) == === 1.4301 (X5CrNi18/10) === bis 550°C === 1.4305 (X8CrNi18-9) === === 1.4307 === === 1.4541 (X6CrNiTi18-10) === bis 550°C (bis 900°C?) == V4A (CrNiMo) == === 1.4401 === bis 550°C === 1.4571 (X6CrNiMoTi17-12-2) === bis 550°C === 1.4404 === == Sonstige == === 1.4713 (X10CrAl7) === bis 800 °C === 1.4724 (X10CrAlS) === bis 850°C === 1.4742 (X10CrSiAl18-1-1) === bis 1000 °C === 1.4828 (X15CrNiSi20-12) === bis 1000 °C === 1.4841 (X15CrNiSi25-21) === bis 1100°C == Quellen == [http://www.edelstahl-rostfrei.de/page.asp?pageID=1574 http://www.edelstahl-rostfrei.de/page.asp?pageID=1574]<br> [http://www.va24.de/service/eigenschaften-von-edelstahl.html http://www.va24.de/service/eigenschaften-von-edelstahl.html]<br> [https://www.dew-stahl.com/service/technische-bibliothekbroschueren/werkstoffdatenblaetter/rsh-staehle/ https://www.dew-stahl.com/service/technische-bibliothekbroschueren/werkstoffdatenblaetter/rsh-staehle/] 9b0bde4e655e7aa7c5768c0722cc21ee600d5f13 2814 2813 2016-07-07T12:55:34Z Satria 1 /* Quellen */ wikitext text/x-wiki == V2A (CrNi) == === 1.4301 (X5CrNi18/10) === bis 550°C === 1.4305 (X8CrNi18-9) === === 1.4307 === === 1.4541 (X6CrNiTi18-10) === bis 550°C (bis 900°C?) == V4A (CrNiMo) == === 1.4401 === bis 550°C === 1.4571 (X6CrNiMoTi17-12-2) === bis 550°C === 1.4404 === == Sonstige == === 1.4713 (X10CrAl7) === bis 800 °C === 1.4724 (X10CrAlS) === bis 850°C === 1.4742 (X10CrSiAl18-1-1) === bis 1000 °C === 1.4828 (X15CrNiSi20-12) === bis 1000 °C === 1.4841 (X15CrNiSi25-21) === bis 1100°C == Quellen == [http://www.edelstahl-rostfrei.de/page.asp?pageID=1574 http://www.edelstahl-rostfrei.de/page.asp?pageID=1574]<br> [http://www.va24.de/service/eigenschaften-von-edelstahl.html http://www.va24.de/service/eigenschaften-von-edelstahl.html]<br> [https://www.dew-stahl.com/service/technische-bibliothekbroschueren/werkstoffdatenblaetter/rsh-staehle/ https://www.dew-stahl.com/service/technische-bibliothekbroschueren/werkstoffdatenblaetter/rsh-staehle/]<br> [http://www.wasi.de/de/handel/downloadbereich/broschueren.html http://www.wasi.de/de/handel/downloadbereich/broschueren.html] c6b650c5b72bf5cf58872645575ec6ed5569eecc Datei:O2Box6441 PortForwarding.png 6 2629 2817 2016-07-13T22:29:09Z Satria 1 Ein gültiges, vollständiges PortForwarding auf einen weiteren Router in der o2Box6441 (VDSL) wikitext text/x-wiki Ein gültiges, vollständiges PortForwarding auf einen weiteren Router in der o2Box6441 (VDSL) fb45629b6ca0b186aebed124e08f0120413abba4 O2Box6441 0 2630 2818 2016-07-13T22:31:34Z Satria 1 Die Seite wurde neu angelegt: „== Portforwarding & VoIP == Man wird sich fragen, was hat das eine mit dem anderen zu tun? Bei dieser Box SEHR VIEL! Und zwar gibt es Probleme mit der Telefon…“ wikitext text/x-wiki == Portforwarding & VoIP == Man wird sich fragen, was hat das eine mit dem anderen zu tun? Bei dieser Box SEHR VIEL! Und zwar gibt es Probleme mit der Telefonie. Man kann nicht raus telefonieren. Das heißt, es klingelt, aber wenn das Gespräch zustande kommt, hört man sich gegenseitig nicht. Nach einigen Wochen und vielen nutzlosen Telefonaten mit der o2 Hotline, fand ich schließlich heraus, dass es am PortForwarding liegt, wenn ein bestimmter Port von außen weitergeleitet wird. Dieser Port ist aber nirgendwo dokumentiert, man wird auch nicht in der Oberfläche der Box darauf hingewiesen. Durch Herantasten habe ich dann herausgefunden, welcher Port es ist. Hier eine vollständige Liste der nicht zulässigen Ports: <poem> 443 (wenn man den Fernzugriff auf diesem Port aktiviert) 5060 (im Hilfetext) 7170 (im Hilfetext) 30566 (behindert VoIP) </poem> [[Datei:o2Box6441_PortForwarding.png|right]]Alle anderen Ports können weitergeleitet werden, so lässt sich annähernd eine DMZ realisieren, z.B. bei einer Routerkaskade, wo der eigentliche Router in einem eigenen Subnetz direkt hinter der o2Box hängen soll. Man muss die Bereiche so wählen, dass sie die nicht zulässigen Ports auslassen. 8f19ec4d42fda01d3c89022897bf46f46b02ba22 2819 2818 2016-07-13T22:33:40Z Satria 1 wikitext text/x-wiki == Port forwarding & VoIP == Man wird sich fragen, was hat das eine mit dem anderen zu tun? Bei dieser Box SEHR VIEL! Und zwar gibt es Probleme mit der Telefonie. Man kann nicht raus telefonieren. Das heißt, es klingelt, aber wenn das Gespräch zustande kommt, hört man sich gegenseitig nicht. Angerufen werden kann man ganz normal. Nach einigen Wochen und vielen nutzlosen Telefonaten mit der o2 Hotline, fand ich schließlich heraus, dass es am Port forwarding liegt, wenn ein bestimmter Port von außen weitergeleitet wird. Dieser Port ist aber nirgendwo dokumentiert, man wird auch nicht in der Oberfläche der Box darauf hingewiesen, dass er nicht weitergeleitet werden darf. Durch Herantasten habe ich dann herausgefunden, welcher Port es ist. Hier eine vollständige Liste der nicht zulässigen Ports: <poem> 443 (wenn man den Fernzugriff auf diesem Port aktiviert) 5060 (im Hilfetext) 7170 (im Hilfetext) 30566 (behindert VoIP) </poem> [[Datei:o2Box6441_PortForwarding.png|right]]Alle anderen Ports können weitergeleitet werden, so lässt sich annähernd eine DMZ realisieren, z.B. bei einer Routerkaskade, wo der eigentliche Router in einem eigenen Subnetz direkt hinter der o2Box hängen soll. Man muss die Bereiche so wählen, dass sie die nicht zulässigen Ports auslassen. 6df395dd26dee8403e17bfd047abed44a45fe295 2820 2819 2016-07-13T22:37:06Z Satria 1 /* Port forwarding & VoIP */ wikitext text/x-wiki == Port forwarding & VoIP == Man wird sich fragen, was hat das eine mit dem anderen zu tun? Bei dieser Box SEHR VIEL! Und zwar gibt es Probleme mit der Telefonie. Man kann nicht raus telefonieren. Das heißt, es klingelt, aber wenn das Gespräch zustande kommt, hört man sich gegenseitig nicht. Angerufen werden kann man ganz normal. Nach einigen Wochen und vielen nutzlosen Telefonaten mit der o2 Hotline, fand ich schließlich heraus, dass es am Port forwarding liegt, wenn ein bestimmter Port von außen weitergeleitet wird. Dieser Port ist aber nirgendwo dokumentiert, man wird auch nicht in der Oberfläche der Box darauf hingewiesen, dass er nicht weitergeleitet werden darf. Durch Herantasten habe ich dann herausgefunden, welcher Port es ist. Hier eine vollständige Liste der nicht zulässigen Ports: <poem> 443 (wenn man den Fernzugriff auf diesem Port aktiviert) 5060 (im Hilfetext) 7170 (im Hilfetext) 30566 (behindert VoIP) </poem> [[Datei:o2Box6441_PortForwarding.png|right]]Alle anderen Ports können weitergeleitet werden, so lässt sich annähernd eine DMZ realisieren, z.B. bei einer Routerkaskade, wo der eigentliche Router in einem eigenen Subnetz direkt hinter der o2Box hängen und das richtige Port forwarding übernehmen soll. Man muss die Bereiche so wählen, dass sie die nicht zulässigen Ports auslassen. 4087066a3e6b9e77399715d4a5923704456ebea3 2821 2820 2016-07-13T22:38:17Z Satria 1 /* Port forwarding & VoIP */ wikitext text/x-wiki == Port forwarding & VoIP == Man wird sich fragen, was hat das eine mit dem anderen zu tun? Bei dieser Box SEHR VIEL! Und zwar gibt es Probleme mit der Telefonie. Man kann nicht raus telefonieren. Das heißt, es klingelt, aber wenn das Gespräch zustande kommt, hört man sich gegenseitig nicht. Angerufen werden kann man ganz normal. Nach einigen Wochen und vielen nutzlosen Telefonaten mit der o2 Hotline, fand ich schließlich heraus, dass es am Port forwarding liegt, wenn ein bestimmter Port von außen weitergeleitet wird. Dieser Port ist aber nirgendwo dokumentiert, man wird auch nicht in der Oberfläche der Box darauf hingewiesen, dass er nicht weitergeleitet werden darf. Durch Herantasten habe ich dann herausgefunden, welcher Port es ist. Hier eine vollständige Liste der nicht zulässigen Ports: <poem> 443 (wenn man den Fernzugriff auf diesem Port aktiviert) 5060 (im Hilfetext) 7170 (im Hilfetext) 30566 (behindert VoIP) </poem> [[Datei:o2Box6441_PortForwarding.png|right]]Alle anderen Ports können weitergeleitet werden, so lässt sich annähernd eine DMZ realisieren, z.B. bei einer Routerkaskade, wo der eigentliche Router (hier 192.168.1.1) in einem eigenen Subnetz direkt hinter der o2Box hängen und das richtige Port forwarding übernehmen soll. Man muss die Bereiche so wählen, dass sie die nicht zulässigen Ports auslassen. 89ffa08a34d7832704201a418f13025792b9beb7 2822 2821 2016-07-13T22:38:46Z Satria 1 /* Port forwarding & VoIP */ wikitext text/x-wiki == Port forwarding & VoIP == Man wird sich fragen, was hat das eine mit dem anderen zu tun? Bei dieser Box SEHR VIEL! Und zwar gibt es Probleme mit der Telefonie. Man kann nicht raus telefonieren. Das heißt, es klingelt, aber wenn das Gespräch zustande kommt, hört man sich gegenseitig nicht. Angerufen werden kann man ganz normal. Nach einigen Wochen und vielen nutzlosen Telefonaten mit der o2 Hotline, fand ich schließlich heraus, dass es am Port forwarding liegt, wenn ein bestimmter Port von außen weitergeleitet wird. Dieser Port ist aber nirgendwo dokumentiert, man wird auch nicht in der Oberfläche der Box darauf hingewiesen, dass er nicht weitergeleitet werden darf. Durch Herantasten habe ich dann herausgefunden, welcher Port es ist. Hier eine vollständige Liste der nicht zulässigen Ports: <poem> 443 (wenn man den Fernzugriff auf diesem Port aktiviert) 5060 (im Hilfetext) 7170 (im Hilfetext) 30566 (behindert VoIP) </poem> [[Datei:o2Box6441_PortForwarding.png|right]]Alle anderen Ports können weitergeleitet werden, so lässt sich annähernd eine DMZ realisieren, z.B. bei einer Routerkaskade, wo der eigentliche Router (hier 192.168.1.1) in einem eigenen Subnetz direkt hinter der o2Box hängen und das richtige Port forwarding ins LAN übernehmen soll. Man muss die Bereiche so wählen, dass sie die nicht zulässigen Ports auslassen. 589f34acbd80a8240c3f0d95b613eeeedc35d8bb Datei:Windows-Kompatibilität.png 6 2631 2825 2016-08-07T01:48:39Z Satria 1 Anwendungskompatibilitätseinstellungen wikitext text/x-wiki Anwendungskompatibilitätseinstellungen 92ab3abfbfe362e4dbe80b1d31b57f20104bf62b SSL Zertifikate 0 2632 2829 2017-03-17T13:11:51Z Satria 1 Die Seite wurde neu angelegt: „== OpenSSL<br/> == Mal sollte den Pfad zur openssl.exe in die PATH Umgebungsvariable mit aufnehmen. Ebenso kann es erforderlich sein, OPENSSL_CONF auf diesen…“ wikitext text/x-wiki == OpenSSL<br/> == Mal sollte den Pfad zur openssl.exe in die PATH Umgebungsvariable mit aufnehmen. Ebenso kann es erforderlich sein, OPENSSL_CONF auf diesen Pfad zu setzen. == Eigenes Class 1 Zertifikat erstellen<br/> == === Mit eigenem CA root Zertifikat (eigener Zertifizierungsstelle)<br/> === Das OpenSource Projekt OpenSSL befähigt dazu, selbst eine CA (Certificate Authority) zu werden, Root Zertifikate und Server-Zertifikate zu erstellen. Wird im Browser das Root-Zertifikat bekannt gemacht (importiert), werden die selbst erstellten Zertifikate als gültig angesehen. Andernfalls erfolgt eine Warnung, die sich in den meisten Browsern so bestätigen lässt, dass das (nicht vertrauenswürdige) Zertifikat akzeptiert wird. ==== CA Zertifikat erstellen<br/> ==== *CA.key: Private key der eigenen CA. *CARoot.cer: Zertifikat der eigenen CA. *Certificate.key: Private key des zukünftigen Server-Zertifikates *Certificate.csr: Zertifikatsanfrage. Wird nur zum Erstellen des Zertifikates benötigt. *Certificate.cer: Das Server-Zertifikat. ===== Private key generieren<br/> ===== <code>openssl genrsa -aes256 -out CA.key 2048</code> *aes256 Die erzeugte Datei wird mit einem Passwort geschützt. *2048: Die Bitlänge des Keys. ===== Root-Zertifikat erstellen<br/> ===== <code>openssl req -x509 -new -nodes -extensions v3_ca -key CA.key -days 1095 -out CARoot.cer -sha512</code> ==== Server-Zertifikat erstellen<br/> ==== ===== Private key generieren<br/> ===== <code>openssl genrsa -out Certificate.key 2048</code> ===== Zertifikatsanfrage erzeugen<br/> ===== <code>openssl req -new -key Certificate.key -out Certificate.csr -sha512</code> ===== Zertifikatsanfrage durch die CA beantworten<br/> ===== Hierbei wird das Zertifikat inklusive public key erstellt, der zum angegebenen private key passt: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAcreateserial -out Certificate.cer -days 365 -sha512</code> *CAcreateserial erstellt eine gleichnamige Seriennummerdatei, also CARoot.srl. Alternativ, wenn bereits eine Seriennummerdatei existiert, kann sie mit dem Parameter -CAserial &lt;file&gt; referenziert werden: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAserial CARoot.srl -out Certificate.cer -days 365 -sha512</code> Wurde <code>Certificate</code><code>.cer</code> korrekt erstellt, kann <code>Certificate</code><code>.csr</code> gelöscht werden. === Ohne CA root Zertifikat (selbst signiert)<br/> === Wenn man kein CA root Zertifikat benötigt, weil man es nie in irgendeinem Browser installieren möchte und / oder man keine weiteren Serverzertifikate braucht, die von derselben Zertifizierungsstellt ausgestellt wurden, dann kann man das Ganze auch abkürzen, mit dem Kommando: <code>openssl req -new -x509 -keyout <code>Certificate</code>.pem -out <code>Certificate</code>.pem -days 365 -nodes</code> Hier werden in einem Schritt der private Schlüssel und das fertige Zertifikat erstellt und beides in die Datei <code>Certificate.pem </code>geschrieben. Wird beides getrennt voneinander benötigt, werden 2 Dateinamen angegeben: <code>openssl req -new -x509 -keyout <code>Certificate</code>.key -out <code>Certificate</code>.cer -days 365 -nodes</code> == PKCS#12 Zertifikat und keystore<br/> == Ausgangssituation: Man hat bereits einen privaten Schlüssel und erhält ein dazu passendes signiertes Zertifikat. Beides liegt im PEM Format vor (Base64 ASCII). Mit OpenSSL konvertiert man alle Zertifikate zusammen in ein PKCS#12 Zertifikat (PFX, P12) <code>openssl pkcs12 -export -out certificate.p12 -inkey privateKey.key -in certificate.cer -certfile Primary.cer -certfile Secondary.cer</code> Primary.cer und Secondary.cer sind Intermediate CA Zertifikate, die ggf. für Apache benötigt werden. Aus dieser .p12 Datei wird ein neuer keystore generiert: <code>keytool -importkeystore -srckeystore certificate.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks</code> <code>-alias 1 -destalias EinKeyStoreAlias</code> können zusätzlich angegeben werden. Dabei muss man sich in dem Ordner befinden, in der die keystore-Datei abgelegt werden soll. == Einbindung in Tomcat<br/> == Die Einbindung der PEM-Zertifikate in den Tomcat erfolgt dann in der server.xml in dem HTTPS-Connector: <code><Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"<br/>&nbsp;&nbsp;&nbsp; maxThreads="150" SSLEnabled="true" scheme="https" secure="true"<br/>&nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS"<br/>&nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateFile</span>="&lt;Pfad+Dateiname&gt;.cer"<br/>&nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateKeyFile</span>="&lt;Pfad+Dateiname&gt;.key"<br/><span style="color:#ff0000">&nbsp;&nbsp;&nbsp; SSLCertificateChainFile</span>="&lt;Pfad+Dateiname&gt;.cer"/></code> <code>Das ChainFile ist u.U. erforderlich, wenn ein Browser Probleme in oder mit der certificate chain hat. Die Chain sind alle Zertifikate oberhalb des Serverzertifikates. In der Datei stehen sie in umgekehrter Reihenfolge, also das höchste (root) steht am Ende.</code> == Quellen<br/> == [https://www.sslshopper.com/ssl-converter.html https://www.sslshopper.com/ssl-converter.html] [http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html] [https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/ https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/] [http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/ http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/] 20ea5de9e9aca53d9b12b60fba15a18a77cc17b5 2830 2829 2017-03-17T13:15:03Z Satria 1 /* Mit eigenem CA root Zertifikat (eigener Zertifizierungsstelle) */ wikitext text/x-wiki == OpenSSL<br/> == Mal sollte den Pfad zur openssl.exe in die PATH Umgebungsvariable mit aufnehmen. Ebenso kann es erforderlich sein, OPENSSL_CONF auf diesen Pfad zu setzen. == Eigenes Class 1 Zertifikat erstellen<br/> == === Mit eigenem CA root Zertifikat (eigener Zertifizierungsstelle)<br/> === Das OpenSource Projekt OpenSSL befähigt dazu, selbst eine CA (Certificate Authority) zu werden, Root Zertifikate und Server-Zertifikate zu erstellen. Wird im Browser das Root-Zertifikat bekannt gemacht (importiert), werden die mit dieser CA ausgestellten Zertifikate ohne Warnung als gültig angesehen. Andernfalls erfolgt eine Warnung, die sich in den meisten Browsern so bestätigen lässt, dass das (nicht vertrauenswürdige) Zertifikat akzeptiert wird. ==== CA Zertifikat erstellen<br/> ==== *CA.key: Private key der eigenen CA. *CARoot.cer: Zertifikat der eigenen CA. *Certificate.key: Private key des zukünftigen Server-Zertifikates *Certificate.csr: Zertifikatsanfrage. Wird nur zum Erstellen des Zertifikates benötigt. *Certificate.cer: Das Server-Zertifikat. ===== Private key generieren<br/> ===== <code>openssl genrsa -aes256 -out CA.key 2048</code> *aes256 Die erzeugte Datei wird mit einem Passwort geschützt. *2048: Die Bitlänge des Keys. ===== Root-Zertifikat erstellen<br/> ===== <code>openssl req -x509 -new -nodes -extensions v3_ca -key CA.key -days 1095 -out CARoot.cer -sha512</code> ==== Server-Zertifikat erstellen<br/> ==== ===== Private key generieren<br/> ===== <code>openssl genrsa -out Certificate.key 2048</code> ===== Zertifikatsanfrage erzeugen<br/> ===== <code>openssl req -new -key Certificate.key -out Certificate.csr -sha512</code> ===== Zertifikatsanfrage durch die CA beantworten<br/> ===== Hierbei wird das Zertifikat inklusive public key erstellt, der zum angegebenen private key passt: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAcreateserial -out Certificate.cer -days 365 -sha512</code> *CAcreateserial erstellt eine gleichnamige Seriennummerdatei, also CARoot.srl. Alternativ, wenn bereits eine Seriennummerdatei existiert, kann sie mit dem Parameter -CAserial &lt;file&gt; referenziert werden: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAserial CARoot.srl -out Certificate.cer -days 365 -sha512</code> Wurde <code>Certificate</code><code>.cer</code> korrekt erstellt, kann <code>Certificate</code><code>.csr</code> gelöscht werden. === Ohne CA root Zertifikat (selbst signiert)<br/> === Wenn man kein CA root Zertifikat benötigt, weil man es nie in irgendeinem Browser installieren möchte und / oder man keine weiteren Serverzertifikate braucht, die von derselben Zertifizierungsstellt ausgestellt wurden, dann kann man das Ganze auch abkürzen, mit dem Kommando: <code>openssl req -new -x509 -keyout <code>Certificate</code>.pem -out <code>Certificate</code>.pem -days 365 -nodes</code> Hier werden in einem Schritt der private Schlüssel und das fertige Zertifikat erstellt und beides in die Datei <code>Certificate.pem </code>geschrieben. Wird beides getrennt voneinander benötigt, werden 2 Dateinamen angegeben: <code>openssl req -new -x509 -keyout <code>Certificate</code>.key -out <code>Certificate</code>.cer -days 365 -nodes</code> == PKCS#12 Zertifikat und keystore<br/> == Ausgangssituation: Man hat bereits einen privaten Schlüssel und erhält ein dazu passendes signiertes Zertifikat. Beides liegt im PEM Format vor (Base64 ASCII). Mit OpenSSL konvertiert man alle Zertifikate zusammen in ein PKCS#12 Zertifikat (PFX, P12) <code>openssl pkcs12 -export -out certificate.p12 -inkey privateKey.key -in certificate.cer -certfile Primary.cer -certfile Secondary.cer</code> Primary.cer und Secondary.cer sind Intermediate CA Zertifikate, die ggf. für Apache benötigt werden. Aus dieser .p12 Datei wird ein neuer keystore generiert: <code>keytool -importkeystore -srckeystore certificate.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks</code> <code>-alias 1 -destalias EinKeyStoreAlias</code> können zusätzlich angegeben werden. Dabei muss man sich in dem Ordner befinden, in der die keystore-Datei abgelegt werden soll. == Einbindung in Tomcat<br/> == Die Einbindung der PEM-Zertifikate in den Tomcat erfolgt dann in der server.xml in dem HTTPS-Connector: <code><Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"<br/>&nbsp;&nbsp;&nbsp; maxThreads="150" SSLEnabled="true" scheme="https" secure="true"<br/>&nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS"<br/>&nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateFile</span>="&lt;Pfad+Dateiname&gt;.cer"<br/>&nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateKeyFile</span>="&lt;Pfad+Dateiname&gt;.key"<br/><span style="color:#ff0000">&nbsp;&nbsp;&nbsp; SSLCertificateChainFile</span>="&lt;Pfad+Dateiname&gt;.cer"/></code> <code>Das ChainFile ist u.U. erforderlich, wenn ein Browser Probleme in oder mit der certificate chain hat. Die Chain sind alle Zertifikate oberhalb des Serverzertifikates. In der Datei stehen sie in umgekehrter Reihenfolge, also das höchste (root) steht am Ende.</code> == Quellen<br/> == [https://www.sslshopper.com/ssl-converter.html https://www.sslshopper.com/ssl-converter.html] [http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html] [https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/ https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/] [http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/ http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/] ca4dc9bf79e68c9d822ed34d7d6e38be39c2e8c2 2831 2830 2017-03-17T13:20:15Z Satria 1 /* Ohne CA root Zertifikat (selbst signiert) */ wikitext text/x-wiki == OpenSSL<br/> == Mal sollte den Pfad zur openssl.exe in die PATH Umgebungsvariable mit aufnehmen. Ebenso kann es erforderlich sein, OPENSSL_CONF auf diesen Pfad zu setzen. == Eigenes Class 1 Zertifikat erstellen<br/> == === Mit eigenem CA root Zertifikat (eigener Zertifizierungsstelle)<br/> === Das OpenSource Projekt OpenSSL befähigt dazu, selbst eine CA (Certificate Authority) zu werden, Root Zertifikate und Server-Zertifikate zu erstellen. Wird im Browser das Root-Zertifikat bekannt gemacht (importiert), werden die mit dieser CA ausgestellten Zertifikate ohne Warnung als gültig angesehen. Andernfalls erfolgt eine Warnung, die sich in den meisten Browsern so bestätigen lässt, dass das (nicht vertrauenswürdige) Zertifikat akzeptiert wird. ==== CA Zertifikat erstellen<br/> ==== *CA.key: Private key der eigenen CA. *CARoot.cer: Zertifikat der eigenen CA. *Certificate.key: Private key des zukünftigen Server-Zertifikates *Certificate.csr: Zertifikatsanfrage. Wird nur zum Erstellen des Zertifikates benötigt. *Certificate.cer: Das Server-Zertifikat. ===== Private key generieren<br/> ===== <code>openssl genrsa -aes256 -out CA.key 2048</code> *aes256 Die erzeugte Datei wird mit einem Passwort geschützt. *2048: Die Bitlänge des Keys. ===== Root-Zertifikat erstellen<br/> ===== <code>openssl req -x509 -new -nodes -extensions v3_ca -key CA.key -days 1095 -out CARoot.cer -sha512</code> ==== Server-Zertifikat erstellen<br/> ==== ===== Private key generieren<br/> ===== <code>openssl genrsa -out Certificate.key 2048</code> ===== Zertifikatsanfrage erzeugen<br/> ===== <code>openssl req -new -key Certificate.key -out Certificate.csr -sha512</code> ===== Zertifikatsanfrage durch die CA beantworten<br/> ===== Hierbei wird das Zertifikat inklusive public key erstellt, der zum angegebenen private key passt: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAcreateserial -out Certificate.cer -days 365 -sha512</code> *CAcreateserial erstellt eine gleichnamige Seriennummerdatei, also CARoot.srl. Alternativ, wenn bereits eine Seriennummerdatei existiert, kann sie mit dem Parameter -CAserial &lt;file&gt; referenziert werden: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAserial CARoot.srl -out Certificate.cer -days 365 -sha512</code> Wurde <code>Certificate</code><code>.cer</code> korrekt erstellt, kann <code>Certificate</code><code>.csr</code> gelöscht werden. === Ohne CA root Zertifikat (selbst signiert)<br/> === Wenn man kein CA root Zertifikat benötigt, weil man es nie in irgendeinem Browser installieren möchte und / oder man keine weiteren Serverzertifikate braucht, die von derselben Zertifizierungsstellt ausgestellt wurden, dann kann man das Ganze auch abkürzen, mit dem Kommando: <code>openssl req -new -x509 -keyout Certificate.pem -out Certificate.pem -days 365 -nodes</code> Hier werden in einem Schritt der private Schlüssel und das fertige Zertifikat erstellt und beides in die Datei <code>Certificate.pem </code>geschrieben. Wird beides getrennt voneinander benötigt, werden 2 verschiedene Dateinamen angegeben: <code>openssl req -new -x509 -keyout Certificate.key -out Certificate.cer -days 365 -nodes</code> == PKCS#12 Zertifikat und keystore<br/> == Ausgangssituation: Man hat bereits einen privaten Schlüssel und erhält ein dazu passendes signiertes Zertifikat. Beides liegt im PEM Format vor (Base64 ASCII). Mit OpenSSL konvertiert man alle Zertifikate zusammen in ein PKCS#12 Zertifikat (PFX, P12) <code>openssl pkcs12 -export -out certificate.p12 -inkey privateKey.key -in certificate.cer -certfile Primary.cer -certfile Secondary.cer</code> Primary.cer und Secondary.cer sind Intermediate CA Zertifikate, die ggf. für Apache benötigt werden. Aus dieser .p12 Datei wird ein neuer keystore generiert: <code>keytool -importkeystore -srckeystore certificate.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks</code> <code>-alias 1 -destalias EinKeyStoreAlias</code> können zusätzlich angegeben werden. Dabei muss man sich in dem Ordner befinden, in der die keystore-Datei abgelegt werden soll. == Einbindung in Tomcat<br/> == Die Einbindung der PEM-Zertifikate in den Tomcat erfolgt dann in der server.xml in dem HTTPS-Connector: <code><Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"<br/>&nbsp;&nbsp;&nbsp; maxThreads="150" SSLEnabled="true" scheme="https" secure="true"<br/>&nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS"<br/>&nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateFile</span>="&lt;Pfad+Dateiname&gt;.cer"<br/>&nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateKeyFile</span>="&lt;Pfad+Dateiname&gt;.key"<br/><span style="color:#ff0000">&nbsp;&nbsp;&nbsp; SSLCertificateChainFile</span>="&lt;Pfad+Dateiname&gt;.cer"/></code> <code>Das ChainFile ist u.U. erforderlich, wenn ein Browser Probleme in oder mit der certificate chain hat. Die Chain sind alle Zertifikate oberhalb des Serverzertifikates. In der Datei stehen sie in umgekehrter Reihenfolge, also das höchste (root) steht am Ende.</code> == Quellen<br/> == [https://www.sslshopper.com/ssl-converter.html https://www.sslshopper.com/ssl-converter.html] [http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html] [https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/ https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/] [http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/ http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/] 1aa8136c28810716b45aa4c402d68ca478fa9f26 Youtube 0 2633 2834 2017-04-15T19:18:18Z Satria 1 Die Seite wurde neu angelegt: „Durch manuelles setzen eines bestimmten Cookies werden in Youtube versteckte Funktionen freigeschaltet (oder das neue Desigin aktiviert?) Das Cookie kann man …“ wikitext text/x-wiki Durch manuelles setzen eines bestimmten Cookies werden in Youtube versteckte Funktionen freigeschaltet (oder das neue Desigin aktiviert?) Das Cookie kann man wie folgt erstellen, wenn man sich mit dem Firefox oder Chrome auf der youtube-Seite befindet: Javascript Console aufrufen (F12 oder Ctrl.+Shift+I) <code><poem> document.cookie="VISITOR_INFO1_LIVE=fPQ4jCL6EiE; path=/; expires=" + (new Date(2020,11,31)).toUTCString() </poem></code> Das Datum (2020,11,31) dient hierbei nur dazu, dass es kein Sitzungscookie wird. Sitzungscookies würden gelöscht, sobald der Browser komplett beendet wird. Mit diesem Datum behält das Cookie bis zum 31.12.2020 seine Gültigkeit. 8f76cbe290df6e303f194c5572be3b38e539d9a8 Vorlage:Extension DPL 10 2634 2838 2017-11-13T11:08:59Z Satria 1 Vorlage:Extension DPL wikitext text/x-wiki <noinclude>This page was automatically created. It serves as an anchor page for all '''[[Special:WhatLinksHere/Template:Extension_DPL|invocations]]''' of [http://mediawiki.org/wiki/Extension:DynamicPageList Extension:DynamicPageList (DPL)].</noinclude> e9d9e47b855388c75d49138192d12f5e15d748c2 Javascript 0 2635 2841 2018-01-04T14:27:35Z Satria 1 Die Seite wurde neu angelegt: „== Bilder drehen<br/> == Um ein Bild zu drehen, muss man es in ein sog. "canvas" malen, das vorher gedreht wurde.<br/>Eine Stolperfalle hierbei ist, dass sich…“ wikitext text/x-wiki == Bilder drehen<br/> == Um ein Bild zu drehen, muss man es in ein sog. "canvas" malen, das vorher gedreht wurde.<br/>Eine Stolperfalle hierbei ist, dass sich beim Drehen das Koordinatensystem des canvas dreht, und man das beim malen des Bildes beachten muss: <code>// img sei ein HTMLImageElement, angle ein Winkel in Grad (0, 90, 180, 270)<br/>function (img, angle)<br/>{<br/>&nbsp; // Ergebnis-Canvas erzeugen.<br/>&nbsp; var targetCanvas = document.createElement("canvas");<br/>&nbsp; // Seitenverhältnis speichern.<br/>&nbsp; var imgRatio = img.width / img.height;<br/>&nbsp; // Je nach Drehung müssen Länge und Höhe des Canvas vertauscht werden.<br/>&nbsp; if (angle == 90 || angle == 270)<br/>&nbsp; {<br/>&nbsp;&nbsp;&nbsp; targetCanvas.width = img.height;<br/>&nbsp;&nbsp;&nbsp; targetCanvas.height = targetCanvas.width * imgRatio;<br/>&nbsp; }<br/>&nbsp; else<br/>&nbsp; {<br/>&nbsp;&nbsp;&nbsp; targetCanvas.width = img.width;<br/>&nbsp;&nbsp;&nbsp; targetCanvas.height = targetCanvas.width / imgRatio;<br/>&nbsp; }<br/>&nbsp; // Mitte des canvas berechnen, um das Koordinatensystem zentral zu drehen und nicht um die linke obere Ecke.<br/>&nbsp; var centerX = Math.round(targetCanvas.width / 2);<br/>&nbsp; var centerY = Math.round(targetCanvas.height / 2);<br/>&nbsp; var ctx = targetCanvas.getContext("2d");<br/>&nbsp; // Mitte des Canvas zu (0|0) machen!<br/>&nbsp; ctx.translate(centerX, centerY);<br/>&nbsp; // Drehung durchführen!<br/>&nbsp; ctx.rotate(angle/360 * 2 * Math.PI);<br/>&nbsp; // Die richtige Ecke des Canvas zu (0|0) machen.<br/>&nbsp; if (angle == 90 || angle == 270)<br/>&nbsp;&nbsp;&nbsp; ctx.translate(-centerY, -centerX);<br/>&nbsp; else<br/>&nbsp;&nbsp;&nbsp; ctx.translate(-centerX, -centerY);<br/>&nbsp; // Das Bild bei dem korrekt gesetzten (0|0) hineinzeichnen.<br/>&nbsp; ctx.drawImage(img, 0, 0);<br/><br/>&nbsp; return targetCanvas.toDataUrl("image/jpeg");<br/>}</code> Quelle: [http://creativejs.com/2012/01/day-10-drawing-rotated-images-into-canvas/ http://creativejs.com/2012/01/day-10-drawing-rotated-images-into-canvas/]<br/>oder<br/>[[Datei:CreativeJS_-_Drawing_rotated_images_into_canvas.pdf]] == CSV Erzeugen<br/> == Um aus einem Objektarray einen CSV-String zu erzeugen, kann man wie folgt vorgehen: <code>var objectArray = [ { Property1: "Value1", Property2: "Value2" }, { Property1: "Value3", Property2: "Value4" } ];<br/>''var header = Object.keys(objectArray[0]); // Take first object to represent the headers<br/>var csvArray = objectArray.map(item => header.map(fieldName =><br/>{<br/>&nbsp; if (item[fieldName] === null)<br/>&nbsp;&nbsp;&nbsp; return ""; // Column with no content, not stringyfied.<br/>&nbsp; else if (typeof (item[fieldName]) == "number")<br/>&nbsp;&nbsp;&nbsp; return (&lt;number&gt;item[fieldName]).toLocaleString(); // Ensure that decimals get the correct (local) decimal point.<br/>&nbsp; else<br/>&nbsp;&nbsp;&nbsp; return JSON.stringify(item[fieldName]); // Stringyfy any other data type.<br/>}<br/>csvArray.unshift(header.join(';'));<br/>var csvStr = csvArray.join('\r\n');''</code> == Download<br/> == Um einen Download in UTF-8 auszulösen mit Dateinamen-Vorschlag, geht man wie folgt vor: <code>var downloadURI = "data:text/csv;charset=utf-8,\uFEFF" + encodeURIComponent("TEXT...");<br/>var downloadLink = document.createElement("a");<br/>downloadLink.style.display = "none";<br/>downloadLink.href = downloadURI;<br/>if (typeof(downloadLink.download) == "string")<br/>&nbsp; downloadLink.download = "Dateiname.csv";<br/>document.body.appendChild(downloadLink);<br/>downloadLink.click();<br/>document.body.removeChild(downloadLink);</code> Hier wird ein HTML A-Element erzeugt, dem BODY hinzugefügt (muss für Firefox so sein), ausgelöst und anschließend wieder entfernt. \uFEFF ist wichtig, damit die spätere Datei korrekt UTF-8 formatiert ist. Für manche Browser ist "download" keine Eigenschaft eines A-Elementes. Hier kann der Dateiname nicht vorbelegt werden. == JSON Eigenschaft löschen<br/> == <code>var objekt = { "id": 4, "name": "Test", "aktiv": true };</code> Soll die Eigenschaft "id" gelöscht werden, lautet der Befehl: <code>delete objekt.id;</code> Danach sieht das Objekt so aus: <code>{ "name": "Test", "aktiv": true }</code> e9a85d93e5b9c92ae088486b87e86bc2e353512b 2842 2841 2018-01-04T14:32:11Z Satria 1 wikitext text/x-wiki == Bilder drehen<br/> == Um ein Bild zu drehen, muss man es in ein sog. "canvas" malen, das vorher gedreht wurde.<br/>Eine Stolperfalle hierbei ist, dass sich beim Drehen das Koordinatensystem des canvas dreht, und man das beim malen des Bildes beachten muss: <code>// img sei ein HTMLImageElement, angle ein Winkel in Grad (0, 90, 180, 270)<br/>function (img, angle)<br/>{<br/>&nbsp; // Ergebnis-Canvas erzeugen.<br/>&nbsp; var targetCanvas = document.createElement("canvas");<br/>&nbsp; // Seitenverhältnis speichern.<br/>&nbsp; var imgRatio = img.width / img.height;<br/>&nbsp; // Je nach Drehung müssen Länge und Höhe des Canvas vertauscht werden.<br/>&nbsp; if (angle == 90 || angle == 270)<br/>&nbsp; {<br/>&nbsp;&nbsp;&nbsp; targetCanvas.width = img.height;<br/>&nbsp;&nbsp;&nbsp; targetCanvas.height = targetCanvas.width * imgRatio;<br/>&nbsp; }<br/>&nbsp; else<br/>&nbsp; {<br/>&nbsp;&nbsp;&nbsp; targetCanvas.width = img.width;<br/>&nbsp;&nbsp;&nbsp; targetCanvas.height = targetCanvas.width / imgRatio;<br/>&nbsp; }<br/>&nbsp; // Mitte des canvas berechnen, um das Koordinatensystem zentral zu drehen und nicht um die linke obere Ecke.<br/>&nbsp; var centerX = Math.round(targetCanvas.width / 2);<br/>&nbsp; var centerY = Math.round(targetCanvas.height / 2);<br/>&nbsp; var ctx = targetCanvas.getContext("2d");<br/>&nbsp; // Mitte des Canvas zu (0|0) machen!<br/>&nbsp; ctx.translate(centerX, centerY);<br/>&nbsp; // Drehung durchführen!<br/>&nbsp; ctx.rotate(angle/360 * 2 * Math.PI);<br/>&nbsp; // Die richtige Ecke des Canvas zu (0|0) machen.<br/>&nbsp; if (angle == 90 || angle == 270)<br/>&nbsp;&nbsp;&nbsp; ctx.translate(-centerY, -centerX);<br/>&nbsp; else<br/>&nbsp;&nbsp;&nbsp; ctx.translate(-centerX, -centerY);<br/>&nbsp; // Das Bild bei dem korrekt gesetzten (0|0) hineinzeichnen.<br/>&nbsp; ctx.drawImage(img, 0, 0);<br/><br/>&nbsp; return targetCanvas.toDataUrl("image/jpeg");<br/>}</code> Quelle: [http://creativejs.com/2012/01/day-10-drawing-rotated-images-into-canvas/ http://creativejs.com/2012/01/day-10-drawing-rotated-images-into-canvas/]<br/>oder<br/>[[Datei:CreativeJS_-_Drawing_rotated_images_into_canvas.pdf]] == CSV Erzeugen<br/> == Um aus einem Objektarray einen CSV-String zu erzeugen, kann man wie folgt vorgehen: <code>var objectArray = [ { Property1: "Value1", Property2: "Value2" }, { Property1: "Value3", Property2: "Value4" } ];<br/>''var header = Object.keys(objectArray[0]); // Take first object to represent the headers<br/>var csvArray = objectArray.map(item => header.map(fieldName =><br/>{<br/>&nbsp; if (item[fieldName] === null)<br/>&nbsp;&nbsp;&nbsp; return ""; // Column with no content, not stringyfied.<br/>&nbsp; else if (typeof (item[fieldName]) == "number")<br/>&nbsp;&nbsp;&nbsp; return (&lt;number&gt;item[fieldName]).toLocaleString(); // Ensure that decimals get the correct (local) decimal point.<br/>&nbsp; else<br/>&nbsp;&nbsp;&nbsp; return JSON.stringify(item[fieldName]); // Stringyfy any other data type.<br/>}<br/>csvArray.unshift(header.join(';'));<br/>var csvStr = csvArray.join('\r\n');''</code> == Download<br/> == Um einen Download in UTF-8 auszulösen mit Dateinamen-Vorschlag, geht man wie folgt vor: <code>var downloadURI = "data:text/csv;charset=utf-8,\uFEFF" + encodeURIComponent("TEXT...");<br/>var downloadLink = document.createElement("a");<br/>downloadLink.style.display = "none";<br/>downloadLink.href = downloadURI;<br/>if (typeof(downloadLink.download) == "string")<br/>&nbsp; downloadLink.download = "Dateiname.csv";<br/>document.body.appendChild(downloadLink);<br/>downloadLink.click();<br/>document.body.removeChild(downloadLink);</code> Hier wird ein HTML A-Element erzeugt, dem BODY hinzugefügt (muss für Firefox so sein), ausgelöst und anschließend wieder entfernt. \uFEFF ist wichtig, damit die spätere Datei korrekt UTF-8 formatiert ist. Für manche Browser ist "download" keine Eigenschaft eines A-Elementes. Hier kann der Dateiname nicht vorbelegt werden. == Anführungszeichen in Strings == Eine Möglichkeit, Anführungszeichen (") in einem String darzustellen ist diese hier: <code>var text = "property=\x22true\x22";</code> text wird dann so aussehen: <code>property="true"</code> Das einfache Anführugnszeichen darstellen kann man mit \x28 => ' == JSON Eigenschaft löschen<br/> == <code>var objekt = { "id": 4, "name": "Test", "aktiv": true };</code> Soll die Eigenschaft "id" gelöscht werden, lautet der Befehl: <code>delete objekt.id;</code> Danach sieht das Objekt so aus: <code>{ "name": "Test", "aktiv": true }</code> 71b323c8152556f5d3d84888f0ad671ac50857cc 2843 2842 2018-01-04T14:35:29Z Satria 1 wikitext text/x-wiki == Anführungszeichen in Strings == Eine Möglichkeit, Anführungszeichen (") in einem String darzustellen ist diese hier: <code>var text = "property=\x22true\x22";</code> text wird dann so aussehen: <code>property="true"</code> Das einfache Anführugnszeichen darstellen kann man mit \x28 => ' == Bilder drehen<br/> == Um ein Bild zu drehen, muss man es in ein sog. "canvas" malen, das vorher gedreht wurde.<br/>Eine Stolperfalle hierbei ist, dass sich beim Drehen das Koordinatensystem des canvas dreht, und man das beim malen des Bildes beachten muss: <code>// img sei ein HTMLImageElement, angle ein Winkel in Grad (0, 90, 180, 270)<br/>function (img, angle)<br/>{<br/>&nbsp; // Ergebnis-Canvas erzeugen.<br/>&nbsp; var targetCanvas = document.createElement("canvas");<br/>&nbsp; // Seitenverhältnis speichern.<br/>&nbsp; var imgRatio = img.width / img.height;<br/>&nbsp; // Je nach Drehung müssen Länge und Höhe des Canvas vertauscht werden.<br/>&nbsp; if (angle == 90 || angle == 270)<br/>&nbsp; {<br/>&nbsp;&nbsp;&nbsp; targetCanvas.width = img.height;<br/>&nbsp;&nbsp;&nbsp; targetCanvas.height = targetCanvas.width * imgRatio;<br/>&nbsp; }<br/>&nbsp; else<br/>&nbsp; {<br/>&nbsp;&nbsp;&nbsp; targetCanvas.width = img.width;<br/>&nbsp;&nbsp;&nbsp; targetCanvas.height = targetCanvas.width / imgRatio;<br/>&nbsp; }<br/>&nbsp; // Mitte des canvas berechnen, um das Koordinatensystem zentral zu drehen und nicht um die linke obere Ecke.<br/>&nbsp; var centerX = Math.round(targetCanvas.width / 2);<br/>&nbsp; var centerY = Math.round(targetCanvas.height / 2);<br/>&nbsp; var ctx = targetCanvas.getContext("2d");<br/>&nbsp; // Mitte des Canvas zu (0|0) machen!<br/>&nbsp; ctx.translate(centerX, centerY);<br/>&nbsp; // Drehung durchführen!<br/>&nbsp; ctx.rotate(angle/360 * 2 * Math.PI);<br/>&nbsp; // Die richtige Ecke des Canvas zu (0|0) machen.<br/>&nbsp; if (angle == 90 || angle == 270)<br/>&nbsp;&nbsp;&nbsp; ctx.translate(-centerY, -centerX);<br/>&nbsp; else<br/>&nbsp;&nbsp;&nbsp; ctx.translate(-centerX, -centerY);<br/>&nbsp; // Das Bild bei dem korrekt gesetzten (0|0) hineinzeichnen.<br/>&nbsp; ctx.drawImage(img, 0, 0);<br/><br/>&nbsp; return targetCanvas.toDataUrl("image/jpeg");<br/>}</code> Quelle: [http://creativejs.com/2012/01/day-10-drawing-rotated-images-into-canvas/ http://creativejs.com/2012/01/day-10-drawing-rotated-images-into-canvas/]<br/>oder<br/>[[Datei:CreativeJS_-_Drawing_rotated_images_into_canvas.pdf]] == CSV Erzeugen<br/> == Um aus einem Objektarray einen CSV-String zu erzeugen, kann man wie folgt vorgehen: <code>var objectArray = [ { Property1: "Value1", Property2: "Value2" }, { Property1: "Value3", Property2: "Value4" } ];<br/>''var header = Object.keys(objectArray[0]); // Take first object to represent the headers<br/>var csvArray = objectArray.map(item => header.map(fieldName =><br/>{<br/>&nbsp; if (item[fieldName] === null)<br/>&nbsp;&nbsp;&nbsp; return ""; // Column with no content, not stringyfied.<br/>&nbsp; else if (typeof (item[fieldName]) == "number")<br/>&nbsp;&nbsp;&nbsp; return (&lt;number&gt;item[fieldName]).toLocaleString(); // Ensure that decimals get the correct (local) decimal point.<br/>&nbsp; else<br/>&nbsp;&nbsp;&nbsp; return JSON.stringify(item[fieldName]); // Stringyfy any other data type.<br/>}<br/>csvArray.unshift(header.join(';'));<br/>var csvStr = csvArray.join('\r\n');''</code> == Download<br/> == Um einen Download in UTF-8 auszulösen mit Dateinamen-Vorschlag, geht man wie folgt vor: <code>var downloadURI = "data:text/csv;charset=utf-8,\uFEFF" + encodeURIComponent("TEXT...");<br/>var downloadLink = document.createElement("a");<br/>downloadLink.style.display = "none";<br/>downloadLink.href = downloadURI;<br/>if (typeof(downloadLink.download) == "string")<br/>&nbsp; downloadLink.download = "Dateiname.csv";<br/>document.body.appendChild(downloadLink);<br/>downloadLink.click();<br/>document.body.removeChild(downloadLink);</code> Hier wird ein HTML A-Element erzeugt, dem BODY hinzugefügt (muss für Firefox so sein), ausgelöst und anschließend wieder entfernt. \uFEFF ist wichtig, damit die spätere Datei korrekt UTF-8 formatiert ist. Für manche Browser ist "download" keine Eigenschaft eines A-Elementes. Hier kann der Dateiname nicht vorbelegt werden. == JSON Eigenschaft löschen<br/> == <code>var objekt = { "id": 4, "name": "Test", "aktiv": true };</code> Soll die Eigenschaft "id" gelöscht werden, lautet der Befehl: <code>delete objekt.id;</code> Danach sieht das Objekt so aus: <code>{ "name": "Test", "aktiv": true }</code> 768a453a958a31fcf5c010514cf37bf274e48c3e SSRS 0 2636 2845 2018-08-30T14:10:21Z Satria 1 Die Seite wurde neu angelegt: „== Microsoft Server Side Reporting Services == === Nicht dokumentierte keywords === Das sind keywords, die nicht über das Menü einer Expression gefunden we…“ wikitext text/x-wiki == Microsoft Server Side Reporting Services == === Nicht dokumentierte keywords === Das sind keywords, die nicht über das Menü einer Expression gefunden werden können. ;Parameters! :Zugriff auf die Parameter des Reports. Intellisense verfügbar. ;ReportingItems! :Zugriff auf Felder des Reports, wie Textboxen etc. Intellisense verfügbar. ;Code. :Zugriff auf Methoden und Objekte, die im Bereich "Custom code" des Reports implementiert wurden. Kein Intellisense verfügbar! 60b6c8a56dc4e9b4b5c597f354493b21cc7f57c2 Homematic 0 2637 2847 2018-09-13T12:24:51Z Satria 1 Die Seite wurde neu angelegt: „== Skripte == <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variab…“ wikitext text/x-wiki == Skripte == <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> 2205308ce6c056629e2ffee092196e26550834bc 2848 2847 2018-09-17T22:12:24Z Satria 1 wikitext text/x-wiki == Skripte == <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) ;Raumliste holen:dom.GetObject(ID_ROOMS) ;Schleife:foreach(current,array.EnumIDs()) {} ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> 8b6059a44c62e982490e7b8b82b1fcf1629d3c35 2849 2848 2018-09-17T22:12:37Z Satria 1 wikitext text/x-wiki == Skripte == <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) ;Raumliste holen:dom.GetObject(ID_ROOMS) ;Schleife:foreach(current, array.EnumIDs()) {} ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> d6617c6cf78da29509dbd80fb3c60b7182275c38 2851 2849 2018-09-20T14:19:56Z Satria 1 Erläuterungen hinzugefügt wikitext text/x-wiki == Skripte == <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> [[Datei:HomeMatic_Script_Objekthierarchie.png]] fa719b6ec6df906fdcbc2342d360a5a4b3b120de 2852 2851 2018-09-20T14:21:23Z Satria 1 /* Skripte */ wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] 64ff987d6bf2f643f10ed527654a09ab76296f88 2857 2852 2018-09-20T14:25:12Z Satria 1 ELV Doku hochgeladen und verlinkt wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] d0c7d88173bfe8030386a1285f538eac2b27a5bc 2860 2857 2018-10-09T08:54:52Z Satria 1 wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Respberry PI 3 == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. === Diagramme werden seit 3.37 nicht mehr auf die SD Karte geschrieben === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] -> entpacken und entsprechend auf den PI3 kopieren d443450bb8160e15ec3f2f04c32b2dbf51c04edf 2861 2860 2018-10-09T08:57:37Z Satria 1 /* Diagramme werden seit 3.37 nicht mehr auf die SD Karte geschrieben */ wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Respberry PI 3 == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] -> entpacken und entsprechend auf den PI3 kopieren fe1243d39041da584c876d02e78a2ddefcc47709 Datei:HomeMatic Script Objekthierarchie.png 6 2638 2850 2018-09-20T14:19:35Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:HM Skript Teil 1 Sprachbeschreibung V2.2.pdf 6 2639 2853 2018-09-20T14:22:39Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:HM Skript Teil 2 Objektmodell V1.2.pdf 6 2640 2854 2018-09-20T14:23:28Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:HM Skript Teil 3 Beispiele V1.1.pdf 6 2641 2855 2018-09-20T14:24:13Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:HM Skript Teil 4-Datenpunkte.pdf 6 2642 2856 2018-09-20T14:25:05Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Datei:PI3 usr local.7z 6 2644 2859 2018-10-09T08:54:20Z Satria 1 Skripte, um USB Zugriffe auf die interne SD Karte umzulenken. wikitext text/x-wiki Skripte, um USB Zugriffe auf die interne SD Karte umzulenken. ad63441234ab656febc355f1dc4ff09a7c1125c0 Homematic 0 2637 2862 2861 2018-10-09T10:04:54Z Satria 1 XML-API absichern wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Respberry PI 3 == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] -> entpacken und entsprechend auf den PI3 kopieren 7535a6b4da011bc7f107aad3d27ab32171f9bedd 2863 2862 2018-10-09T10:06:16Z Satria 1 wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] -> entpacken und entsprechend auf den PI3 kopieren ba8dc54644c776b965b294d013a7b8204bae4b8c 2864 2863 2018-10-09T10:07:26Z Satria 1 /* Diagramme ab Version 3.37 wieder auf die SD Karte speichern */ wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] -> entpacken und entsprechend auf den PI3 kopieren 0d2f527d3d8853efcde208e03b5e375d426721c0 2866 2864 2018-10-09T10:13:22Z Satria 1 /* XML-API absichern */ wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] -> entpacken und entsprechend auf den PI3 kopieren 1564c67feb5c40577e325aa55ebf3633ca5722e6 2867 2866 2018-10-09T10:14:21Z Satria 1 /* Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) */ wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] <- Download. Entpacken und entsprechend auf den PI3 kopieren. 15f4e420234c244315f76abd563dc6bfadf3b91a 2868 2867 2018-10-16T09:01:24Z Satria 1 Linux-Befehl ausführen ergänzt wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) ;Linux-Befehl ausführen :string stdout; :string stderr; :system.Exec("Befehl", &stdout, &stderr); :''Beispiel für den Aufruf einer URL, stdout und stderr können wegfallen'' :system.Exec("wget -q -O /dev/null --user=user --password=password <nowiki>https://server.de</nowiki>"); </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] <- Download. Entpacken und entsprechend auf den PI3 kopieren. 8b99244a172c0f4a42c9d51d94d06f94c3f61f08 2869 2868 2018-10-16T09:05:21Z Satria 1 Anderes Programm aufrufen ergänzt wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) ;Linux-Befehl ausführen :string stdout; :string stderr; :system.Exec("Befehl", &stdout, &stderr); :''Beispiel für den Aufruf einer URL, stdout und stderr können wegfallen'' :system.Exec("wget -q -O /dev/null --user=user --password=password <nowiki>https://server.de</nowiki>"); ;Anderes Programm aufrufen :var programObj = dom.GetObject("ZielProgramm"); :programObj.ProgramExecute(); </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] <- Download. Entpacken und entsprechend auf den PI3 kopieren. 9601628d054d072b2baabf27b3b222d9354006cb 2870 2869 2018-10-16T09:49:22Z Satria 1 /* Code-Beispiele und Erklärungen */ wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) ;Linux-Befehl ausführen :string stdout; :string stderr; :system.Exec("Befehl", &stdout, &stderr); :''Beispiel für den Aufruf einer URL, stdout und stderr können wegfallen. User und Passwort sind in der URL unterzubringen, das Kaufmanns-Und (&) ist zu escapen'' :system.Exec("wget -q -O /dev/null --no-check-certificate <nowiki>https://user:password@server.de?command\&parameter=1</nowiki>"); ;Anderes Programm aufrufen :var programObj = dom.GetObject("ZielProgramm"); :programObj.ProgramExecute(); </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] <- Download. Entpacken und entsprechend auf den PI3 kopieren. 9c6317c5c0076519e27f962b5aa672c634798bab 2871 2870 2018-11-04T13:35:40Z Satria 1 /* Skripte */ wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) ;Linux-Befehl ausführen :string stdout; :string stderr; :system.Exec("Befehl", &stdout, &stderr); :''Beispiel für den Aufruf einer URL, stdout und stderr können wegfallen. User und Passwort sind in der URL unterzubringen, das Kaufmanns-Und (&) ist zu escapen'' :system.Exec("wget -q -O /dev/null --no-check-certificate <nowiki>https://user:password@server.de?command\&parameter=1</nowiki>"); ;Anderes Programm aufrufen :var programObj = dom.GetObject("ZielProgramm"); :programObj.ProgramExecute(); </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] === Sonnenauf- und Sonnenuntergang === Eine Astrofunktion stellt den Zeitpunkt des lokalen offiziellen Sonnenauf- und Sonnenuntergangs zur Verfügung. Auf diese kann in der Zeitsteuerung per Radio-Button zugegriffen werden. In Skripten erreicht man diese Werte über: <code>system.SunriseTime</code> und <code>system.SunsetTime</code> == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] <- Download. Entpacken und entsprechend auf den PI3 kopieren. 6264c2b7e471bbcd0460b14a329614316d542f84 2890 2871 2019-01-20T11:15:13Z Satria 1 wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) ;Linux-Befehl ausführen :string stdout; :string stderr; :system.Exec("Befehl", &stdout, &stderr); :''Beispiel für den Aufruf einer URL, stdout und stderr können wegfallen. User und Passwort sind in der URL unterzubringen, das Kaufmanns-Und (&) ist zu escapen'' :system.Exec("wget -q -O /dev/null --no-check-certificate <nowiki>https://user:password@server.de?command\&parameter=1</nowiki>"); ;Anderes Programm aufrufen :var programObj = dom.GetObject("ZielProgramm"); :programObj.ProgramExecute(); </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] === Sonnenauf- und Sonnenuntergang === Eine Astrofunktion stellt den Zeitpunkt des lokalen offiziellen Sonnenauf- und Sonnenuntergangs zur Verfügung. Auf diese kann in der Zeitsteuerung per Radio-Button zugegriffen werden. In Skripten erreicht man diese Werte über: <code>system.SunriseTime</code> und <code>system.SunsetTime</code> == Dimmer == Um einen Dimm-Aktor (Steckdose, Schalter) automatisch linear ansteigen (oder abfallen) zu lassen, wird mit sog. Rampen gearbeitet. Hier werden die erforderlichen Parameter einmal an den Aktor abgesetzt, der von da an diese Rampe von selbst umsetzt. Die Parameter für eine solche Rampenfunktion müssen aus unerfindlichen Gründen zeitgleich aber in einer bestimmten Reihenfolge abgesetzt werden: # sofort Einschaltdauer setzen (definiert, wie lange der Aktor eingeschaltet bleibt, nachdem er die Rampe vollständig hochgefahren ist) # sofort Dimmzeit setzen (definiert, wie breit die Rampe sein soll, also wie lange der Dimmprozess dauern soll) # sofort Dimmwert setzen (definiert, auf welchen Wert der Dimmaktor sich innerhalb der Dimmzeit hoch- oder runterfahren soll) Jetzt beginnt der Aktor mit dem linearen Dimmen. == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] <- Download. Entpacken und entsprechend auf den PI3 kopieren. c6d122acb750d47861389a0b4888a3d40c434e92 Datei:PI3 usr local etc config lighttpd xmlauth.7z 6 2645 2865 2018-10-09T10:12:51Z Satria 1 lighttpd config zum Absichern der XML-API wikitext text/x-wiki lighttpd config zum Absichern der XML-API 5fa73a0c811795cbb710f281a153b338d3368956 Windows 10 0 2646 2873 2018-12-03T08:52:22Z Satria 1 Die Seite wurde neu angelegt: „Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar twe…“ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: === Doppelte USB Laufweke im Explorer === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> 421708cce91eb93b7e82401161a8f859f21ddd1a 2874 2873 2018-12-03T08:58:38Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> 3fdf11703e6c713d52ffcb18f788d0bce50d9fcc 2875 2874 2018-12-03T10:13:51Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === Timeline nicht in die Cloud hochladen === Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. 094878544715cacc89bf6147e70d73da10b223e7 2876 2875 2018-12-04T09:25:21Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diesen Registry-Wert von 1 auf 0: <pre> Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree</pre> === Timeline nicht in die Cloud hochladen === Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. 9f8884e026fb7226af309ae51e87834f2dc79334 2877 2876 2018-12-04T09:26:58Z Satria 1 /* OneDrive aus Explorer entfernen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> === Timeline nicht in die Cloud hochladen === Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. c4efbf9ddd86db0cc11aba91abea508eb6bd870a 2878 2877 2018-12-04T09:32:51Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. b4e663baad4dc2bcd91b03e11caf9e05640d29da 2879 2878 2018-12-04T09:53:41Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber auch der eigene Benutzerprofilordner (D:\User) soll von Apps benutzt werden, um in separaten Unuterordnern Einstellungen abzulegen. Man kann das mit diesem Registry-Eintrag versuchen: <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal] </pre> == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. b7a175fd6d13aa536632f0aa7af2215721ff101f 2880 2879 2018-12-04T10:24:37Z Satria 1 /* Besondere Ordner */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unuterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. 2760b11bdccd25718af690ed674db7cf719951ba 2881 2880 2018-12-04T12:24:12Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unuterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Quellen == [http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html] [https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen] 740bf8266f17f7f397878b928d342663456a9bd9 2882 2881 2018-12-04T12:24:56Z Satria 1 /* Quellen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unuterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen a0c4c6fc63a63ffaf9e2649037c821711fca221e 2889 2882 2019-01-07T13:09:00Z Satria 1 /* Besondere Ordner */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen 7ddcf7251b3a450f9b8d3de42335f3a3e8b6cee3 2909 2889 2019-02-05T09:33:57Z Satria 1 /* Quellen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer 7c44208e0874d473e2af8b23f7393996525ee5d5 2910 2909 2019-03-05T13:19:20Z Satria 1 /* Timeline nicht in die Cloud hochladen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine install.wim zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem "sources"-Verzeichnis öffnen. # Mit dem Befehl <code>dism /get-wiminfo /wimfile:install.esd</code> den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl <code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code> konvertiert jetzt den Inhalt aus der install.esd für Windows 10 Pro in eine install.wim. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer de78448859c291ea868da81e432b15790eb54ea8 2911 2910 2019-03-05T13:20:00Z Satria 1 /* ESD in WIM umwandeln */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem "sources"-Verzeichnis öffnen. # Mit dem Befehl <code>dism /get-wiminfo /wimfile:install.esd</code> den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl <code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code> konvertiert jetzt den Inhalt aus der install.esd für Windows 10 Pro in eine install.wim. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer c97b748cd923eb589b3ae7daced78bbdc3e4bfdd 2912 2911 2019-03-05T13:28:00Z Satria 1 /* ESD in WIM umwandeln */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer 5711328bcb11ea1f7addb1ead42b0ad2c445e209 2913 2912 2019-03-09T12:35:25Z Satria 1 /* Quellen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ 78ea67fd89d08a30fa0e318cb530c2df9f0c9148 2914 2913 2019-03-09T12:39:48Z Satria 1 /* ESD in WIM umwandeln */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ 7dd498cd93b20b42532f4194142f089481145746 Katalysator 0 2647 2884 2018-12-20T11:56:40Z Satria 1 Die Seite wurde neu angelegt: „== Ottomotor == Hier soll nur der geregelte 3-Wege-Katalysator erwähnt sein, da der ungeregelte wenig effizient war. 3-Wege deshalb, weil 3 Reaktionen in ihm…“ wikitext text/x-wiki == Ottomotor == Hier soll nur der geregelte 3-Wege-Katalysator erwähnt sein, da der ungeregelte wenig effizient war. 3-Wege deshalb, weil 3 Reaktionen in ihm stattfinden:<br> 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> 3. Stickoxid und Kohlenmonoxid reagieren zu Kohlendioxid Stickstoff. Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. 2C<sub>2</sub>H<sub>6</sub> + 7O<sub>2</sub> -> 4CO<sub>2</sub> + 6H<sub>2</sub>O :(2 Kohlenwasserstoffmoleküle und 7 Sauerstoffmoleküle reagieren zu 4 Kohledioxidmolekülen und 6 Wassermolekülen)<br> ;3. 2NO + 2CO -> 2CO<sub>2</sub> + N<sub>2</sub> :(2 Stickoxidmoleküle und 2 Kohlenmonoxidmoleküle reagieren zu 2 Kohlendioxidmolekülen und 2 Stickstoffmolekülen) In Worten: Für die ersten 2 Reaktionen ist immer eine korrekte Menge Restsauerstoff im Abgas notwendig. Das erklärt auch, warum ein fettes Gemisch (kein Sauerstoff mehr) diese Reaktionen unmöglich macht. (=> zu viele Kohlenmonoxide und zu viele Kohlenwasserstoffe)<br> Aber auch ein mageres Gemsich (zu viel Sauerstoff im Abgas) ist schlecht, weil dann kein Kohlenmonoxid mehr übrig wäre, um die 3. Reaktion zu ermöglichen. (=> zu viele Stickoxide) Das "stöchiometrische" Gemisch (Lambda = 1) ist also so defininert, dass sich nach der Verbrennung noch genau die richtige Menge an überschüssigem Sauerstoff im Abgas befindet, um die 3 Reaktionen Möglich zu machen. == Dieselmotor == == Quellen == [https://de.wikipedia.org/wiki/Fahrzeugkatalysator https://de.wikipedia.org/wiki/Fahrzeugkatalysator] b6c569d6cbce9c3e4a041af3c6030c2c6dd61ed1 2885 2884 2018-12-20T12:03:41Z Satria 1 wikitext text/x-wiki == Ottomotor == Hier soll nur der geregelte 3-Wege-Katalysator erwähnt sein, da der ungeregelte wenig effizient war. 3-Wege deshalb, weil 3 Reaktionen in ihm stattfinden:<br> 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> 3. Stickoxid und Kohlenmonoxid reagieren zu Kohlendioxid und Stickstoff. Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. 2C<sub>2</sub>H<sub>6</sub> + 7O<sub>2</sub> -> 4CO<sub>2</sub> + 6H<sub>2</sub>O :(2 Kohlenwasserstoffmoleküle und 7 Sauerstoffmoleküle reagieren zu 4 Kohledioxidmolekülen und 6 Wassermolekülen)<br> ;3. 2NO + 2CO -> 2CO<sub>2</sub> + N<sub>2</sub> :(2 Stickoxidmoleküle und 2 Kohlenmonoxidmoleküle reagieren zu 2 Kohlendioxidmolekülen und 2 Stickstoffmolekülen) In Worten: Für die ersten 2 Reaktionen ist immer eine korrekte Menge Restsauerstoff im Abgas notwendig. Das erklärt auch, warum ein fettes Gemisch (kein Sauerstoff mehr) diese Reaktionen unmöglich macht. (=> zu viele Kohlenmonoxide und zu viele Kohlenwasserstoffe)<br> Aber auch ein mageres Gemsich (zu viel Sauerstoff im Abgas) ist schlecht, weil dann kein Kohlenmonoxid mehr übrig wäre, um die 3. Reaktion zu ermöglichen. (=> zu viele Stickoxide) Das "stöchiometrische" Gemisch (Lambda = 1) ist also so defininert, dass sich nach der Verbrennung noch genau die richtige Menge an überschüssigem Sauerstoff im Abgas befindet, um die 3 Reaktionen Möglich zu machen. == Dieselmotor == Da der Dieselmotor grundsätzlich mit Luftüberschuss arbeitet (außer beim Beschleunigen), steht hier nie genug Kohlenmonoxid zur Verfügung, um die 3. Reaktion ablaufen zu lassen. Deshalb heißt der Diesel-Kat auch "Oxidationskatalysator". In ihm finden nur diese Reaktionen statt: 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. C<sub>n</sub>H<sub>m</sub> + (n + m<sub>/4</sub>) O<sub>2</sub> -> n CO<sub>2</sub> + (m<sub>/2</sub>) H<sub>2</sub>O :(Kohlenwasserstoffmoleküle und Sauerstoffmoleküle reagieren zu Kohledioxidmolekülen und Wassermolekülen in passender Anzahl)<br> Deshal auch der hohe Stickoxidausstoß der Dieselmotoren, neben Rußpartikeln, die auch nur beim Diesel erzeugt werden. == Quellen == [https://de.wikipedia.org/wiki/Fahrzeugkatalysator https://de.wikipedia.org/wiki/Fahrzeugkatalysator] [https://www.mein-autolexikon.de/abgasanlage/katalysator.html https://www.mein-autolexikon.de/abgasanlage/katalysator.html] 71a79cf7919d9fc324cf5fa24912c6ba8bba6034 2886 2885 2018-12-20T12:06:39Z Satria 1 /* Ottomotor */ wikitext text/x-wiki == Ottomotor == Hier soll nur der geregelte 3-Wege-Katalysator erwähnt sein, da der ungeregelte wenig effizient war. 3-Wege deshalb, weil 3 Reaktionen in ihm stattfinden:<br> 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> 3. Stickoxid und Kohlenmonoxid reagieren zu Kohlendioxid und Stickstoff. Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. 2C<sub>2</sub>H<sub>6</sub> + 7O<sub>2</sub> -> 4CO<sub>2</sub> + 6H<sub>2</sub>O :(2 Kohlenwasserstoffmoleküle und 7 Sauerstoffmoleküle reagieren zu 4 Kohledioxidmolekülen und 6 Wassermolekülen)<br> ;3. 2NO + 2CO -> 2CO<sub>2</sub> + N<sub>2</sub> :(2 Stickoxidmoleküle und 2 Kohlenmonoxidmoleküle reagieren zu 2 Kohlendioxidmolekülen und 2 Stickstoffmolekülen) In Worten: Für die ersten 2 Reaktionen ist immer eine korrekte Menge Restsauerstoff im Abgas notwendig. Das erklärt auch, warum ein fettes Gemisch (kein Sauerstoff mehr) diese Reaktionen unmöglich macht. (=> zu viele Kohlenmonoxide und zu viele Kohlenwasserstoffe)<br> Aber auch ein mageres Gemsich (zu viel Sauerstoff im Abgas) ist schlecht, weil kein Kohlenmonoxid mehr übrig ist, um die 3. Reaktion zu ermöglichen. Es hat dann bereits alles CO mit dem Restsauerstoff reagiert. (=> zu viele Stickoxide) Das "stöchiometrische" Gemisch (Lambda = 1) ist also so definiert, dass sich nach der Verbrennung noch genau die richtige Menge an überschüssigem Sauerstoff im Abgas befindet, um die 3 Reaktionen Möglich zu machen. == Dieselmotor == Da der Dieselmotor grundsätzlich mit Luftüberschuss arbeitet (außer beim Beschleunigen), steht hier nie genug Kohlenmonoxid zur Verfügung, um die 3. Reaktion ablaufen zu lassen. Deshalb heißt der Diesel-Kat auch "Oxidationskatalysator". In ihm finden nur diese Reaktionen statt: 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. C<sub>n</sub>H<sub>m</sub> + (n + m<sub>/4</sub>) O<sub>2</sub> -> n CO<sub>2</sub> + (m<sub>/2</sub>) H<sub>2</sub>O :(Kohlenwasserstoffmoleküle und Sauerstoffmoleküle reagieren zu Kohledioxidmolekülen und Wassermolekülen in passender Anzahl)<br> Deshal auch der hohe Stickoxidausstoß der Dieselmotoren, neben Rußpartikeln, die auch nur beim Diesel erzeugt werden. == Quellen == [https://de.wikipedia.org/wiki/Fahrzeugkatalysator https://de.wikipedia.org/wiki/Fahrzeugkatalysator] [https://www.mein-autolexikon.de/abgasanlage/katalysator.html https://www.mein-autolexikon.de/abgasanlage/katalysator.html] ef835af575e2a67fd4ac88fc8937b8ad3202ec78 2887 2886 2018-12-20T12:07:50Z Satria 1 /* Ottomotor */ wikitext text/x-wiki == Ottomotor == Hier soll nur der geregelte 3-Wege-Katalysator erwähnt sein, da der ungeregelte wenig effizient war. 3-Wege deshalb, weil 3 Reaktionen in ihm stattfinden:<br> 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> 3. Stickoxid und Kohlenmonoxid reagieren zu Kohlendioxid und Stickstoff. Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. 2C<sub>2</sub>H<sub>6</sub> + 7O<sub>2</sub> -> 4CO<sub>2</sub> + 6H<sub>2</sub>O :(2 Kohlenwasserstoffmoleküle und 7 Sauerstoffmoleküle reagieren zu 4 Kohledioxidmolekülen und 6 Wassermolekülen)<br> ;3. 2NO + 2CO -> 2CO<sub>2</sub> + N<sub>2</sub> :(2 Stickoxidmoleküle und 2 Kohlenmonoxidmoleküle reagieren zu 2 Kohlendioxidmolekülen und 2 Stickstoffmolekülen) In Worten: Für die ersten 2 Reaktionen ist immer eine korrekte Menge Restsauerstoff im Abgas notwendig. Das erklärt auch, warum ein fettes Gemisch (kein Sauerstoff mehr) diese Reaktionen unmöglich macht. (=> zu viele Kohlenmonoxide und zu viele Kohlenwasserstoffe)<br> Aber auch ein mageres Gemsich (zu viel Sauerstoff im Abgas) ist schlecht, weil kein Kohlenmonoxid mehr übrig ist, um die 3. Reaktion zu ermöglichen. Es hat dann bereits alles CO mit dem Restsauerstoff reagiert. (=> zu viele Stickoxide) Das "stöchiometrische" Gemisch (Lambda = 1) ist also so definiert, dass sich nach der Verbrennung noch genau die richtige Menge an überschüssigem Sauerstoff im Abgas befindet, um die 3 Reaktionen möglich zu machen. == Dieselmotor == Da der Dieselmotor grundsätzlich mit Luftüberschuss arbeitet (außer beim Beschleunigen), steht hier nie genug Kohlenmonoxid zur Verfügung, um die 3. Reaktion ablaufen zu lassen. Deshalb heißt der Diesel-Kat auch "Oxidationskatalysator". In ihm finden nur diese Reaktionen statt: 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. C<sub>n</sub>H<sub>m</sub> + (n + m<sub>/4</sub>) O<sub>2</sub> -> n CO<sub>2</sub> + (m<sub>/2</sub>) H<sub>2</sub>O :(Kohlenwasserstoffmoleküle und Sauerstoffmoleküle reagieren zu Kohledioxidmolekülen und Wassermolekülen in passender Anzahl)<br> Deshal auch der hohe Stickoxidausstoß der Dieselmotoren, neben Rußpartikeln, die auch nur beim Diesel erzeugt werden. == Quellen == [https://de.wikipedia.org/wiki/Fahrzeugkatalysator https://de.wikipedia.org/wiki/Fahrzeugkatalysator] [https://www.mein-autolexikon.de/abgasanlage/katalysator.html https://www.mein-autolexikon.de/abgasanlage/katalysator.html] c1c6671b1ebdf2f85f26d2a0b4f7f20f78fc7caf 2888 2887 2018-12-20T12:09:22Z Satria 1 /* Dieselmotor */ wikitext text/x-wiki == Ottomotor == Hier soll nur der geregelte 3-Wege-Katalysator erwähnt sein, da der ungeregelte wenig effizient war. 3-Wege deshalb, weil 3 Reaktionen in ihm stattfinden:<br> 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> 3. Stickoxid und Kohlenmonoxid reagieren zu Kohlendioxid und Stickstoff. Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. 2C<sub>2</sub>H<sub>6</sub> + 7O<sub>2</sub> -> 4CO<sub>2</sub> + 6H<sub>2</sub>O :(2 Kohlenwasserstoffmoleküle und 7 Sauerstoffmoleküle reagieren zu 4 Kohledioxidmolekülen und 6 Wassermolekülen)<br> ;3. 2NO + 2CO -> 2CO<sub>2</sub> + N<sub>2</sub> :(2 Stickoxidmoleküle und 2 Kohlenmonoxidmoleküle reagieren zu 2 Kohlendioxidmolekülen und 2 Stickstoffmolekülen) In Worten: Für die ersten 2 Reaktionen ist immer eine korrekte Menge Restsauerstoff im Abgas notwendig. Das erklärt auch, warum ein fettes Gemisch (kein Sauerstoff mehr) diese Reaktionen unmöglich macht. (=> zu viele Kohlenmonoxide und zu viele Kohlenwasserstoffe)<br> Aber auch ein mageres Gemsich (zu viel Sauerstoff im Abgas) ist schlecht, weil kein Kohlenmonoxid mehr übrig ist, um die 3. Reaktion zu ermöglichen. Es hat dann bereits alles CO mit dem Restsauerstoff reagiert. (=> zu viele Stickoxide) Das "stöchiometrische" Gemisch (Lambda = 1) ist also so definiert, dass sich nach der Verbrennung noch genau die richtige Menge an überschüssigem Sauerstoff im Abgas befindet, um die 3 Reaktionen möglich zu machen. == Dieselmotor == Da der Dieselmotor grundsätzlich mit Luftüberschuss arbeitet (außer beim Beschleunigen), steht hier nie genug Kohlenmonoxid zur Verfügung, um die 3. Reaktion ablaufen zu lassen. Deshalb heißt der Diesel-Kat auch "Oxidationskatalysator". In ihm finden nur diese Reaktionen statt: 1. Kohlenmonoxid und Sauerstoff reagieren zu Kohlendioxid.<br> 2. Kohlenwasserstoff und Sauerstoff reagieren zu Kohlendioxid und Wasser.<br> Die exakten Reaktionsgleichungen sehen so aus:<br> ;1. 2CO + O<sub>2</sub> -> 2CO<sub>2</sub> :(2 Kohlenmonoxidmoleküle und 1 Sauerstoffmolekül reagieren zu 2 Kohlendioxidmolekülen)<br> ;2. C<sub>n</sub>H<sub>m</sub> + (n + m<sub>/4</sub>) O<sub>2</sub> -> n CO<sub>2</sub> + (m<sub>/2</sub>) H<sub>2</sub>O :(Kohlenwasserstoffmoleküle und Sauerstoffmoleküle reagieren zu Kohledioxidmolekülen und Wassermolekülen in passender Anzahl)<br> Deshalb auch der hohe Stickoxidausstoß der Dieselmotoren, neben Rußpartikeln, die auch nur beim Diesel erzeugt werden. == Quellen == [https://de.wikipedia.org/wiki/Fahrzeugkatalysator https://de.wikipedia.org/wiki/Fahrzeugkatalysator] [https://www.mein-autolexikon.de/abgasanlage/katalysator.html https://www.mein-autolexikon.de/abgasanlage/katalysator.html] 5d7dff0007e6108cf33494a65755490457fe0d54 FreePBX 0 2648 2892 2019-01-21T14:31:46Z Satria 1 Die Seite wurde neu angelegt: „Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verst…“ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Für Toplink-Xpress, müssen die *Incoming*-Parameter des Trunk so aussehen: ;USER Context:<leer> ;USER Details:<leer> ;Register String:<username>:<password>@sip.toplink-xpress.de/<username> Die *Outgoing* Parameter sollen ungefähr so aussehen: ;Trunk Name:toplink ;PEER Details :type=peer :host=sip.toplink-xpress.de :fromdomain=sip.toplink-xpress.de :username=<username> :fromuser=<username> :secret=<password> :insecure=port,invite == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] d5112a9cc85f17681361cfe5cec8ae5deca66f6d 2893 2892 2019-01-25T13:05:23Z Satria 1 /* Trunk Konfiguration */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Für Toplink-Xpress, müssen die *Incoming*-Parameter des Trunk so aussehen: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] Die *Outgoing* Parameter sollen ungefähr so aussehen: ;Trunk Name:toplink ;PEER Details :type=peer :host=sip.toplink-xpress.de :fromdomain=sip.toplink-xpress.de :username=<username> :fromuser=<username> :secret=<password> :insecure=port,invite == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] 69a230704f62b322b7b0b913175a76f30c08b813 2894 2893 2019-01-25T13:37:00Z Satria 1 /* Trunk Konfiguration */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich diese Werte herausgestellt, hier exemplarisch für toplink-xpress: === Toplink === Die *Outgoing* Parameter: ;Trunk Name:toplink ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die *Incoming*-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] :Alternativ: <username>:<password>@toplink/<username> "toplink" ist der Trunk Name oder auch "Context", der in den Outgoing Parameters definiert wurde. === o2 === Funktioniert noch nicht! Die *Outgoing* Parameter: ;Trunk Name:alicesip ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :qualifyfreq=1800 :caninvite=no :canreinvite=no :context=public Die *Incoming*-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>:<username>@alicesip/11 == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] bb14842ac52bd874d2e419e325cb8418dfac9932 2895 2894 2019-01-25T13:38:18Z Satria 1 /* Trunk Konfiguration */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich diese Werte herausgestellt, hier exemplarisch für toplink-xpress: === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:toplink ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] :Alternativ: <username>:<password>@toplink/<username> "toplink" ist der Trunk Name oder auch "Context", der in den Outgoing Parameters definiert wurde. === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:alicesip ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :qualifyfreq=1800 :caninvite=no :canreinvite=no :context=public Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>:<username>@alicesip/11 == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] 9788bb15763d23b96f62e93e9c6f17eea0b005cd 2896 2895 2019-01-25T13:39:25Z Satria 1 /* o2 */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich diese Werte herausgestellt, hier exemplarisch für toplink-xpress: === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:toplink ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] :Alternativ: <username>:<password>@toplink/<username> "toplink" ist der Trunk Name oder auch "Context", der in den Outgoing Parameters definiert wurde. === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:alicesip ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>:<username>@alicesip/11~1800 == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] 53bb80d73726d90b405044ed2032f0cc6dce1567 2897 2896 2019-01-25T13:41:42Z Satria 1 /* Trunk Konfiguration */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:toplink ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] :Alternativ: <username>:<password>@toplink/<username> "toplink" ist der Trunk Name oder auch "Context", der in den Outgoing Parameters definiert wurde. === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:alicesip ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>:<username>@alicesip/11~1800 == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] 21704fb96bde6c27962aca13811e028ce614dcff 2898 2897 2019-01-25T13:45:25Z Satria 1 /* Trunk Konfiguration */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>:<username>@<span style="color:#ff8c00">alicesip</span>/11~1800 == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] 788c23facd771c92c9069ad63b6d0fc78ed6799a 2899 2898 2019-01-29T01:55:48Z Satria 1 /* o2 */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] c6b4892af1e920da46e9370148ce2c681d6c4449 2900 2899 2019-01-30T11:47:20Z Satria 1 /* Quellen und Tutorials */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] 63410f7e2a53c4b8764fe2dc3f6af612d3b70e70 2901 2900 2019-02-02T18:56:43Z Satria 1 /* o2 */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Ausführlicher: [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry] :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 (noch unsicher, ob das gegen das Verlieren der Registrierung hilft) Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] 8ce3a10af0135b16084974077bd8edcfe5129503 2902 2901 2019-02-02T19:05:29Z Satria 1 /* Trunk Konfiguration */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 (noch unsicher, ob das gegen das Verlieren der Registrierung hilft) Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] 99573663a8187c495a5988578982e0e53a44dfcf 2903 2902 2019-02-02T19:05:54Z Satria 1 /* Quellen und Tutorials */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 (noch unsicher, ob das gegen das Verlieren der Registrierung hilft) Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] [https://forums.whirlpool.net.au/archive/2688065 https://forums.whirlpool.net.au/archive/2688065] 462f6b0c72456e867865a10d659f2d449db71ebe 2904 2903 2019-02-03T23:52:01Z Satria 1 /* Email */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 (noch unsicher, ob das gegen das Verlieren der Registrierung hilft) Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: === Methode 1 === (Funktioniert bei mir nicht, da /etc/postfix schon nicht vorhanden ist) <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> === Methode 2 === # Per SSH wird dieser Befehl ausgeführt:<br><code>dpkg-reconfigure exim4-config</code><br>In dem Setup alle Einstellungen so belassen, wie sie sind, außer bei der Frage nach "IP address or the host name of a mail server". Hier die SMTP-Adresse eintragen! # In die Datei <code>/etc/exim4/passwd.client</code> am Ende die Zeile einfügen:<br><code>SMTP_HOSTNAME:USERNAME:PASSWORD</code><br>dabei natürlich die echten Werte einsetzen! # In die Datei <code>/etc/email-addresses</code> am Ende diese Zeilen einfügen:<br><code>root: from@server.de</code><br><code>asterisk: from@server.de</code><br>dabei wieder die echten Werte einsetzen! # Befehl <code>update-exim4.conf</code> ausführen! # Testen: <code>send_test_email target@server.de</code> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] [https://forums.whirlpool.net.au/archive/2688065 https://forums.whirlpool.net.au/archive/2688065] e315affd9c93a2f67119616dd9f28e5f87adbadc 2905 2904 2019-02-04T00:00:22Z Satria 1 /* Quellen und Tutorials */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 (noch unsicher, ob das gegen das Verlieren der Registrierung hilft) Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: === Methode 1 === (Funktioniert bei mir nicht, da /etc/postfix schon nicht vorhanden ist) <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> === Methode 2 === # Per SSH wird dieser Befehl ausgeführt:<br><code>dpkg-reconfigure exim4-config</code><br>In dem Setup alle Einstellungen so belassen, wie sie sind, außer bei der Frage nach "IP address or the host name of a mail server". Hier die SMTP-Adresse eintragen! # In die Datei <code>/etc/exim4/passwd.client</code> am Ende die Zeile einfügen:<br><code>SMTP_HOSTNAME:USERNAME:PASSWORD</code><br>dabei natürlich die echten Werte einsetzen! # In die Datei <code>/etc/email-addresses</code> am Ende diese Zeilen einfügen:<br><code>root: from@server.de</code><br><code>asterisk: from@server.de</code><br>dabei wieder die echten Werte einsetzen! # Befehl <code>update-exim4.conf</code> ausführen! # Testen: <code>send_test_email target@server.de</code> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf https://www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home https://wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ https://www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [www.raspberry-asterisk.org/documentation/#email www.raspberry-asterisk.org/documentation/#email] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] [https://forums.whirlpool.net.au/archive/2688065 https://forums.whirlpool.net.au/archive/2688065] 9982b52004fea17d471e2a06b29d10435ba8b993 2906 2905 2019-02-04T00:01:12Z Satria 1 /* Quellen und Tutorials */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 (noch unsicher, ob das gegen das Verlieren der Registrierung hilft) Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: === Methode 1 === (Funktioniert bei mir nicht, da /etc/postfix schon nicht vorhanden ist) <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> === Methode 2 === # Per SSH wird dieser Befehl ausgeführt:<br><code>dpkg-reconfigure exim4-config</code><br>In dem Setup alle Einstellungen so belassen, wie sie sind, außer bei der Frage nach "IP address or the host name of a mail server". Hier die SMTP-Adresse eintragen! # In die Datei <code>/etc/exim4/passwd.client</code> am Ende die Zeile einfügen:<br><code>SMTP_HOSTNAME:USERNAME:PASSWORD</code><br>dabei natürlich die echten Werte einsetzen! # In die Datei <code>/etc/email-addresses</code> am Ende diese Zeilen einfügen:<br><code>root: from@server.de</code><br><code>asterisk: from@server.de</code><br>dabei wieder die echten Werte einsetzen! # Befehl <code>update-exim4.conf</code> ausführen! # Testen: <code>send_test_email target@server.de</code> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [http://www.raspberry-asterisk.org/documentation/#email www.raspberry-asterisk.org/documentation/#email] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] [https://forums.whirlpool.net.au/archive/2688065 forums.whirlpool.net.au/archive/2688065] 1d65b14ea084bbf0cd188ad5403cc708c87c3193 2907 2906 2019-02-04T00:01:37Z Satria 1 /* Quellen und Tutorials */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 (noch unsicher, ob das gegen das Verlieren der Registrierung hilft) Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: === Methode 1 === (Funktioniert bei mir nicht, da /etc/postfix schon nicht vorhanden ist) <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> === Methode 2 === # Per SSH wird dieser Befehl ausgeführt:<br><code>dpkg-reconfigure exim4-config</code><br>In dem Setup alle Einstellungen so belassen, wie sie sind, außer bei der Frage nach "IP address or the host name of a mail server". Hier die SMTP-Adresse eintragen! # In die Datei <code>/etc/exim4/passwd.client</code> am Ende die Zeile einfügen:<br><code>SMTP_HOSTNAME:USERNAME:PASSWORD</code><br>dabei natürlich die echten Werte einsetzen! # In die Datei <code>/etc/email-addresses</code> am Ende diese Zeilen einfügen:<br><code>root: from@server.de</code><br><code>asterisk: from@server.de</code><br>dabei wieder die echten Werte einsetzen! # Befehl <code>update-exim4.conf</code> ausführen! # Testen: <code>send_test_email target@server.de</code> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> Backup directory placeholders ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [http://www.raspberry-asterisk.org/documentation/#email www.raspberry-asterisk.org/documentation/#email] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] [https://forums.whirlpool.net.au/archive/2688065 forums.whirlpool.net.au/archive/2688065] 0fd917ebb3deb006d38e75096975a039627c59e3 2908 2907 2019-02-04T00:16:26Z Satria 1 /* Tampered Files */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Funktioniert noch nicht! Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 (noch unsicher, ob das gegen das Verlieren der Registrierung hilft) Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: === Methode 1 === (Funktioniert bei mir nicht, da /etc/postfix schon nicht vorhanden ist) <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> === Methode 2 === # Per SSH wird dieser Befehl ausgeführt:<br><code>dpkg-reconfigure exim4-config</code><br>In dem Setup alle Einstellungen so belassen, wie sie sind, außer bei der Frage nach "IP address or the host name of a mail server". Hier die SMTP-Adresse eintragen! # In die Datei <code>/etc/exim4/passwd.client</code> am Ende die Zeile einfügen:<br><code>SMTP_HOSTNAME:USERNAME:PASSWORD</code><br>dabei natürlich die echten Werte einsetzen! # In die Datei <code>/etc/email-addresses</code> am Ende diese Zeilen einfügen:<br><code>root: from@server.de</code><br><code>asterisk: from@server.de</code><br>dabei wieder die echten Werte einsetzen! # Befehl <code>update-exim4.conf</code> ausführen! # Testen: <code>send_test_email target@server.de</code> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> == Backup directory placeholders == ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk:In diesem Verzeichnis befindet sich auch das "backup"-Verzeichnis selbst, in dem die Backups abgelegt werden. == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [http://www.raspberry-asterisk.org/documentation/#email www.raspberry-asterisk.org/documentation/#email] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] [https://forums.whirlpool.net.au/archive/2688065 forums.whirlpool.net.au/archive/2688065] e5c94e8b946b77a4c64d3911a78ab6ab0e30cec7 Windows 10 0 2646 2915 2914 2019-03-13T11:41:18Z Satria 1 Hintergrund-Apps wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ e79cafb2cfd90e1402ddaf21fbe1b4a4e40a250f 2919 2915 2019-03-20T07:34:53Z Satria 1 /* Hintergrund-Apps deaktivieren */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ a714641ae1c3487b6dc94aaad5d7645b3ba32da6 2920 2919 2019-03-20T07:35:19Z Satria 1 /* Quellen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 e0830ef55f8adaf2945dc0855498921a0d9200e4 2922 2920 2019-03-27T08:02:06Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ b3e96f3e61b226d5062fc04732020ea02fd07546 2926 2922 2019-04-02T01:41:52Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ 85ee78798a3b6c0452ef691537e0a5fc48d276f4 2927 2926 2019-04-02T01:52:38Z Satria 1 /* Geplante Tasks abschalten */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Ein geplanter Task wird deaktiviert mit dem Wert: <pre><Task> <Settings> <Enabled>false</Enabled> </Settings> </Task></pre> == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ b6555aa83748457ac9da1696e1ef715229c9a6f3 2928 2927 2019-04-02T02:12:16Z Satria 1 /* Geplante Tasks abschalten */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man sie editieren und den Task deaktivieren. Ein geplanter Task wird deaktiviert mit dem Wert: <pre><Task> <Settings> <Enabled>false</Enabled> </Settings> </Task></pre> == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ d483b28ae75988570f1a0a3d2931214fc2984197 2929 2928 2019-04-02T16:59:22Z Satria 1 Unattended Idle Timer wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man sie editieren und den Task deaktivieren. Ein geplanter Task wird deaktiviert mit dem Wert: <pre><Task> <Settings> <Enabled>false</Enabled> </Settings> </Task></pre> == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ 154affc4b709f625a4ba36a51bc5aa37406d3e38 2930 2929 2019-04-03T09:51:56Z Satria 1 /* Geplante Tasks abschalten */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man sie editieren und den Task deaktivieren. Ein geplanter Task wird deaktiviert mit dem Wert: <pre><Task> <Settings> <Enabled>false</Enabled> </Settings> </Task></pre> '''Diese an sich korrekte Einstellung wird aber leider nicht in den geplanten Task übernommen.''' Es findet irgendeine Art caching oder so etwas statt. Meine Lösung war also vorerst, den Task zu löschen. Sowohl in der Registry als auch im Dateisystem. Das alleinige Löschen in der Registry hat nicht zu einem erneuten Einlesen der Datei geführt. Die Registryzweige sind: <pre>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks</pre> und <pre>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree</pre> Im zweiten findet man den entsprechenden Task in der Hierarchie. Beide gefundenen Schlüssel des Tasks kann man dann löschen. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ 48c1da56e9f6171b5dab913bc165a5ff9d612163 2933 2930 2019-04-03T10:26:11Z Satria 1 /* ESD in WIM umwandeln */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man sie editieren und den Task deaktivieren. Ein geplanter Task wird deaktiviert mit dem Wert: <pre><Task> <Settings> <Enabled>false</Enabled> </Settings> </Task></pre> '''Diese an sich korrekte Einstellung wird aber leider nicht in den geplanten Task übernommen.''' Es findet irgendeine Art caching oder so etwas statt. Meine Lösung war also vorerst, den Task zu löschen. Sowohl in der Registry als auch im Dateisystem. Das alleinige Löschen in der Registry hat nicht zu einem erneuten Einlesen der Datei geführt. Die Registryzweige sind: <pre>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks</pre> und <pre>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree</pre> Im zweiten findet man den entsprechenden Task in der Hierarchie. Beide gefundenen Schlüssel des Tasks kann man dann löschen. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ e110538a884ecfa46ecec210d435b04d133fdc2e 2937 2933 2019-05-20T07:58:39Z Satria 1 /* Netzwerkordner in Bibliotheken */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man sie editieren und den Task deaktivieren. Ein geplanter Task wird deaktiviert mit dem Wert: <pre><Task> <Settings> <Enabled>false</Enabled> </Settings> </Task></pre> '''Diese an sich korrekte Einstellung wird aber leider nicht in den geplanten Task übernommen.''' Es findet irgendeine Art caching oder so etwas statt. Meine Lösung war also vorerst, den Task zu löschen. Sowohl in der Registry als auch im Dateisystem. Das alleinige Löschen in der Registry hat nicht zu einem erneuten Einlesen der Datei geführt. Die Registryzweige sind: <pre>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks</pre> und <pre>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree</pre> Im zweiten findet man den entsprechenden Task in der Hierarchie. Beide gefundenen Schlüssel des Tasks kann man dann löschen. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ 0ff04b3ede089fcb188f6fd548c3b8d0c140c498 2938 2937 2019-05-20T07:59:05Z Satria 1 /* Quellen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man sie editieren und den Task deaktivieren. Ein geplanter Task wird deaktiviert mit dem Wert: <pre><Task> <Settings> <Enabled>false</Enabled> </Settings> </Task></pre> '''Diese an sich korrekte Einstellung wird aber leider nicht in den geplanten Task übernommen.''' Es findet irgendeine Art caching oder so etwas statt. Meine Lösung war also vorerst, den Task zu löschen. Sowohl in der Registry als auch im Dateisystem. Das alleinige Löschen in der Registry hat nicht zu einem erneuten Einlesen der Datei geführt. Die Registryzweige sind: <pre>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks</pre> und <pre>Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree</pre> Im zweiten findet man den entsprechenden Task in der Hierarchie. Beide gefundenen Schlüssel des Tasks kann man dann löschen. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html 1fb6bcd69a89427c87b482d24397fd117d027749 2946 2938 2019-05-27T08:38:00Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Everyone:F" /deny "SYSTEM:F" /deny "Local Service:F" /deny "Administrators:F"</pre> (muss ggf. an die lokale Sprache angepasst werden) == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 8bc33e1679f6da36ed128bc24087c7e0e2d84ea3 2947 2946 2019-05-28T02:04:53Z Satria 1 /* Fehlende Berechtigungen 2 */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 a35091fb4a0fbcb91f5bd7d246aed0f72a3b3eb1 2956 2947 2019-09-25T22:28:37Z Satria 1 /* Geplante Tasks abschalten */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 bedf48abf46355fa1901826d26b09321dead5555 2957 2956 2019-09-26T09:32:59Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootloader Editier-Tool. Mit diesem Tool kann direkt Einfluss auf die im NVRAM des UEFI abgelegten Betriebssystemeinträge genommen werden. Einträge hinzufügen, löschen, als Default setzen etc. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 a6f0d89db8150cf54feb2c6d18963f7a34793578 2960 2957 2019-09-27T07:36:01Z Satria 1 /* BCDedit */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 b7d9b49d63c054a692d69360b5da8954717eb889 2961 2960 2019-09-27T08:08:48Z Satria 1 /* Bootmanager und EFI */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. "EFI Partition verfügbar machen"). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\grub\ --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 7b7ccd6661af69e1fbd5a0e672f78756470a95ac 2963 2961 2019-10-01T09:10:13Z Satria 1 /* Timeline nicht in die Cloud hochladen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. "EFI Partition verfügbar machen"). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\grub\ --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 123be20dab4f17bff1affb5e51a15e2693c00735 2964 2963 2019-10-04T08:50:36Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. "EFI Partition verfügbar machen"). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\grub\ --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 10e65833c64c7a7bc7cae4fc22ec109112fbb16b 2965 2964 2019-10-18T23:05:44Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. "EFI Partition verfügbar machen"). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\grub\ --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 79e7869e75d217ce00cf526c93c7ff4495171b57 Linux 0 13 2916 19 2019-03-13T11:43:25Z Satria 1 verschob „[[Linux Absturz]]“ nach „[[Linux]]“: Weitere Unterpunkte geplant wikitext text/x-wiki Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> 71a3823571ea8bab2b807bec0baf5cffec93f880 2918 2916 2019-03-13T11:46:15Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> f19f261712dc1fa42b25e560d599e6c3a3ccbaba 2939 2918 2019-05-23T19:16:06Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <code>cat /proc/partitions</code> und / oder mit <code>fdisk -l</code> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <code>mdadm --assemble /dev/md5 /dev/sda3 --run</code> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <code>mount -r /dev/md5 /mnt/HDD</code> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to f03c928ebbc93435f59f6990a550392e0397fa21 2940 2939 2019-05-24T11:11:19Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /target /destination &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /target /destination & >/dev/null 2>/dev/null ; disown; </pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect f503e96f1ca565ecd10872acebadb03273323366 2941 2940 2019-05-24T11:11:49Z Satria 1 /* Quellen */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /target /destination &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /target /destination & >/dev/null 2>/dev/null ; disown; </pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect d50331819371036bede716ae52ec091ab900c673 2942 2941 2019-05-24T11:26:58Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> === Variante 3 === Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsip cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ dc3753787fb4a1337ec6014bef6abc4cf621e736 2943 2942 2019-05-24T11:29:28Z Satria 1 /* Variante 3 */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsip cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ dab3373751c0fc64e18e4ce75cff60ca8032de06 2944 2943 2019-05-24T23:39:23Z Satria 1 /* Variante 3 */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ d463b9416a6e9cdabc7bc86796b3e6490dfc751e 2948 2944 2019-06-04T23:07:49Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ cd2786ab926d7464d196dac63a47b29d5bb25e2e Autobatterie 0 49 2921 209 2019-03-22T07:17:11Z Satria 1 wikitext text/x-wiki Auch "Starterbatterie" genannt, weil sie nämlich (neben der Versorgung der elektrischen Verbraucher bei ausgeschaltetem Motor) NUR zum Anlassen (Starten) des Motors benötigt wird.<br> Läuft der Motor, übernimmt die Lichtmaschine als Stromgenerator die Versorgung des kompletten Kfz mit Strom und lädt noch dazu die Batterie wieder auf. Bei Autobatterien gibt es neben verschiedenen Pol-Formen (rund, flach) auch noch unterschiedliche Polanordnungen: Polanordnung 0 (oder auch "Pluspol rechts"): <pre> ------------- | | | | | - + | ------------- </pre> Polanordnung 1 (oder auch "Pluspol links"): <pre> ------------- | | | | | + - | ------------- </pre> Etwas exotischer: Polanordnung 3: <pre> ------------- | - | | | | + | ------------- </pre> Polanordnung 4: <pre> ------------- | - | | | | + | ------------- </pre> Die Polanordnung kann entscheidend darüber sein, wie gut sich eine Batterie im Kfz verbauen lässt. In den meisten Fällen erlauben enge Bauweisen und knapp bemessene Kabel nur eine bestimmte Polanordnung im jeweiligen Kfz. 5486e4d7591cc92e3d4a3d232d9bcad438807d25 FreePBX 0 2648 2923 2908 2019-03-29T12:22:50Z Satria 1 /* o2 */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Nummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Nummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden kann, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: === Methode 1 === (Funktioniert bei mir nicht, da /etc/postfix schon nicht vorhanden ist) <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> === Methode 2 === # Per SSH wird dieser Befehl ausgeführt:<br><code>dpkg-reconfigure exim4-config</code><br>In dem Setup alle Einstellungen so belassen, wie sie sind, außer bei der Frage nach "IP address or the host name of a mail server". Hier die SMTP-Adresse eintragen! # In die Datei <code>/etc/exim4/passwd.client</code> am Ende die Zeile einfügen:<br><code>SMTP_HOSTNAME:USERNAME:PASSWORD</code><br>dabei natürlich die echten Werte einsetzen! # In die Datei <code>/etc/email-addresses</code> am Ende diese Zeilen einfügen:<br><code>root: from@server.de</code><br><code>asterisk: from@server.de</code><br>dabei wieder die echten Werte einsetzen! # Befehl <code>update-exim4.conf</code> ausführen! # Testen: <code>send_test_email target@server.de</code> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> == Backup directory placeholders == ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk:In diesem Verzeichnis befindet sich auch das "backup"-Verzeichnis selbst, in dem die Backups abgelegt werden. == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [http://www.raspberry-asterisk.org/documentation/#email www.raspberry-asterisk.org/documentation/#email] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] [https://forums.whirlpool.net.au/archive/2688065 forums.whirlpool.net.au/archive/2688065] 8a9404cee086fbd5ab6850679362267c6988a37f Hauptseite 0 1 2924 46 2019-03-29T13:58:54Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[Distanzscheiben]]<br> [[DNS]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 1e373d2b91050def9d2e0fdbc37c790fc19cfd21 2931 2924 2019-04-03T09:54:26Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 5e5ced349e4ebb0047a2afb015de2eb8a16eaffa 2934 2931 2019-04-12T07:12:40Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 1ab2957e947ef46f2cd27e55490358ace241d909 2953 2934 2019-08-30T10:51:26Z Satria 1 /* Themen */ wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] d46bbf626aed4d41a40b5427a04f2c1e143c1cb9 2958 2953 2019-09-26T14:01:49Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] e0a7f995861e6d9f72d0750608b595ae27dab8a6 SSL Zertifikate 0 2632 2925 2831 2019-03-29T14:03:33Z Satria 1 wikitext text/x-wiki == OpenSSL == Mal sollte den Pfad zur openssl.exe in die PATH Umgebungsvariable mit aufnehmen. Ebenso kann es erforderlich sein, OPENSSL_CONF auf diesen Pfad zu setzen. == Eigenes Class 1 Zertifikat erstellen == === Mit eigenem CA root Zertifikat (eigener Zertifizierungsstelle) === Das OpenSource Projekt OpenSSL befähigt dazu, selbst eine CA (Certificate Authority) zu werden, Root Zertifikate und Server-Zertifikate zu erstellen. Wird im Browser das Root-Zertifikat bekannt gemacht (importiert), werden die mit dieser CA ausgestellten Zertifikate ohne Warnung als gültig angesehen. Andernfalls erfolgt eine Warnung, die sich in den meisten Browsern so bestätigen lässt, dass das (nicht vertrauenswürdige) Zertifikat akzeptiert wird. ==== CA Zertifikat erstellen ==== *CA.key: Private key der eigenen CA. *CARoot.cer: Zertifikat der eigenen CA. *Certificate.key: Private key des zukünftigen Server-Zertifikates *Certificate.csr: Zertifikatsanfrage. Wird nur zum Erstellen des Zertifikates benötigt. *Certificate.cer: Das Server-Zertifikat. ===== Private key generieren ===== <code>openssl genrsa -aes256 -out CA.key 2048</code> *aes256 Die erzeugte Datei wird mit einem Passwort geschützt. *2048: Die Bitlänge des Keys. ===== Root-Zertifikat erstellen ===== <code>openssl req -x509 -new -nodes -extensions v3_ca -key CA.key -days 1095 -out CARoot.cer -sha512</code> ==== Server-Zertifikat erstellen ==== ===== Private key generieren ===== <code>openssl genrsa -out Certificate.key 2048</code> ===== Zertifikatsanfrage erzeugen ===== <code>openssl req -new -key Certificate.key -out Certificate.csr -sha512</code> ===== Zertifikatsanfrage durch die CA beantworten ===== Hierbei wird das Zertifikat inklusive public key erstellt, der zum angegebenen private key passt: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAcreateserial -out Certificate.cer -days 365 -sha512</code> *CAcreateserial erstellt eine gleichnamige Seriennummerdatei, also CARoot.srl. Alternativ, wenn bereits eine Seriennummerdatei existiert, kann sie mit dem Parameter -CAserial &lt;file&gt; referenziert werden: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAserial CARoot.srl -out Certificate.cer -days 365 -sha512</code> Wurde <code>Certificate</code><code>.cer</code> korrekt erstellt, kann <code>Certificate</code><code>.csr</code> gelöscht werden. === Ohne CA root Zertifikat (selbst signiert) === Wenn man kein CA root Zertifikat benötigt, weil man es nie in irgendeinem Browser installieren möchte und / oder man keine weiteren Serverzertifikate braucht, die von derselben Zertifizierungsstellt ausgestellt wurden, dann kann man das Ganze auch abkürzen, mit dem Kommando: <code>openssl req -new -x509 -keyout Certificate.pem -out Certificate.pem -days 365 -nodes</code> Hier werden in einem Schritt der private Schlüssel und das fertige Zertifikat erstellt und beides in die Datei <code>Certificate.pem </code>geschrieben. Wird beides getrennt voneinander benötigt, werden 2 verschiedene Dateinamen angegeben: <code>openssl req -new -x509 -keyout Certificate.key -out Certificate.cer -days 365 -nodes</code> == PKCS#12 Zertifikat und keystore == Ausgangssituation: Man hat bereits einen privaten Schlüssel und erhält ein dazu passendes signiertes Zertifikat. Beides liegt im PEM Format vor (Base64 ASCII). Mit OpenSSL konvertiert man alle Zertifikate zusammen in ein PKCS#12 Zertifikat (PFX, P12) <code>openssl pkcs12 -export -out certificate.p12 -inkey privateKey.key -in certificate.cer -certfile Primary.cer -certfile Secondary.cer</code> Primary.cer und Secondary.cer sind Intermediate CA Zertifikate, die ggf. für Apache benötigt werden. Aus dieser .p12 Datei wird ein neuer keystore generiert: <code>keytool -importkeystore -srckeystore certificate.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks</code> <code>-alias 1 -destalias EinKeyStoreAlias</code> können zusätzlich angegeben werden. Dabei muss man sich in dem Ordner befinden, in der die keystore-Datei abgelegt werden soll. == Einbindung in Tomcat == Die Einbindung der PEM-Zertifikate in den Tomcat erfolgt dann in der server.xml in dem HTTPS-Connector: <code><Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"<br/> &nbsp;&nbsp;&nbsp; maxThreads="150" SSLEnabled="true" scheme="https" secure="true"<br/> &nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS"<br/> &nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateFile</span>="&lt;Pfad+Dateiname&gt;.cer"<br/> &nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateKeyFile</span>="&lt;Pfad+Dateiname&gt;.key"<br/> <span style="color:#ff0000">&nbsp;&nbsp;&nbsp; SSLCertificateChainFile</span>="&lt;Pfad+Dateiname&gt;.cer"/></code> <code>Das ChainFile ist u.U. erforderlich, wenn ein Browser Probleme in oder mit der certificate chain hat. Die Chain sind alle Zertifikate oberhalb des Serverzertifikates. In der Datei stehen sie in umgekehrter Reihenfolge, also das höchste (root) steht am Ende.</code> == Quellen == [https://www.sslshopper.com/ssl-converter.html https://www.sslshopper.com/ssl-converter.html] [http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html] [https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/ https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/] [http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/ http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/] a4c1a25bb4c3e541c5f2a4ed5dd983a3ad9d929f Datei:SMB-Client-1.0.png 6 2649 2932 2019-04-03T10:25:36Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Winamp 0 2650 2935 2019-04-12T08:15:29Z Satria 1 Die Seite wurde neu angelegt: „Ja, ich nutze noch Winamp, den alten Mediaplayer von Nullsoft, in der Version 5.8 (aus 2018). Er ist mir einfach der liebste, weil er kein überladenes, funkti…“ wikitext text/x-wiki Ja, ich nutze noch Winamp, den alten Mediaplayer von Nullsoft, in der Version 5.8 (aus 2018). Er ist mir einfach der liebste, weil er kein überladenes, funktionales Interface hat, einfache Playlistverwaltung, ID3 Bearbeitungen erlaubt und sowohl lokale als auch remote Zugriffe erlaubt bis hin zu webradio (Adresse muss bekannt sein). Lokal ist auch das Suchen nach Detailinformationen möglich, wie Titel, Interpret, Genre, wenn die lokalen Verzeichnisse einmal gescannt worden sind. == Online Services == Wenn man hier einen https-Dienst mit unsicherem (z.B. seblst signiertem Zertifikat) einträgt, wird der Winamp eigene Browser nichts anzeigen bzw. einen Fehler melden. Error code: 6 Da es aber kein Winamp eigener Browser ist, sondern die IE API genutzt wird, muss diese Seite bzw ihr Zertifikat nur im IE als vertrauenwürdig eingetragen werden. Knackpunkt ist hier bei der Installation des Zertifikats in den Zertifikatsspeicher, dass man nicht "Zertifikatsspeicher automatisch wählen" selektiert, sondern "Alle Zertifikate in folgendem Speicher speichern" und hier die "Vertrauenswürdige Stammzertifizierungsstellen" auswählt. (Englisch: "Trusted Root Certification Authorities") Jetzt wird der Winamp Browser die Seite anzeigen. 91fa9a2a949bb17c10716d270c89e4ec21bce898 Datei:Win10-Rand-Gesten.png 6 2651 2936 2019-05-20T07:54:35Z Satria 1 Windows 10 Touchpad Rand-Gesten abschalten. wikitext text/x-wiki Windows 10 Touchpad Rand-Gesten abschalten. 22e4437d3c6cc86ca6437cf91acaa1d805d7c506 Datei:NSudo.png 6 2652 2945 2019-05-27T08:35:37Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Homematic 0 2637 2949 2890 2019-06-05T07:28:49Z Satria 1 wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) ;Linux-Befehl ausführen :string stdout; :string stderr; :system.Exec("Befehl", &stdout, &stderr); :''Beispiel für den Aufruf einer URL, stdout und stderr können wegfallen. User und Passwort sind in der URL unterzubringen, das Kaufmanns-Und (&) ist zu escapen'' :system.Exec("wget -q -O /dev/null --no-check-certificate <nowiki>https://user:password@server.de?command\&parameter=1</nowiki>"); ;Anderes Programm aufrufen :var programObj = dom.GetObject("ZielProgramm"); :programObj.ProgramExecute(); </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] === Sonnenauf- und Sonnenuntergang === Eine Astrofunktion stellt den Zeitpunkt des lokalen offiziellen Sonnenauf- und Sonnenuntergangs zur Verfügung. Auf diese kann in der Zeitsteuerung per Radio-Button zugegriffen werden. In Skripten erreicht man diese Werte über: <code>system.SunriseTime</code> und <code>system.SunsetTime</code> == Dimmer == Um einen Dimm-Aktor (Steckdose, Schalter) automatisch linear ansteigen (oder abfallen) zu lassen, wird mit sog. Rampen gearbeitet. Hier werden die erforderlichen Parameter einmal an den Aktor abgesetzt, der von da an diese Rampe von selbst umsetzt. Die Parameter für eine solche Rampenfunktion müssen aus unerfindlichen Gründen zeitgleich aber in einer bestimmten Reihenfolge abgesetzt werden: # sofort Einschaltdauer setzen (definiert, wie lange der Aktor eingeschaltet bleibt, nachdem er die Rampe vollständig hochgefahren ist) # sofort Dimmzeit setzen (definiert, wie breit die Rampe sein soll, also wie lange der Dimmprozess dauern soll) # sofort Dimmwert setzen (definiert, auf welchen Wert der Dimmaktor sich innerhalb der Dimmzeit hoch- oder runterfahren soll) Jetzt beginnt der Aktor mit dem linearen Dimmen. == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] <- Download. Entpacken und entsprechend auf den PI3 kopieren. == Monit (Watachdog) == Es gibt etliche Überwachungen, die alle vom tool "monit" übernommen werden. Temporär (also bis zum Neustart) lassen sich verschiedene Überwachungen abschalten per SSH: <pre>monit unmonitor <dienst></pre> z.B. <pre>monit unmonitor hasInternet</pre> Auch aus einem Homemetic Skript kann das ausgeführt werden: <pre>system.Exec("monit unmonitor hasInternet");</pre> Die Konfiguration von monit findet man unter <pre>/etc/monitrc</pre> Hier können ggf. Überwachungen auskommentiert werden, was aber bei einem Update wieder überschrieben würde. ffafbc56ab23bb608e60647ba770b80ad7ebbbe6 2950 2949 2019-06-06T08:04:33Z Satria 1 CPU Temperatur wikitext text/x-wiki == Skripte == === Code-Beispiele und Erklärungen === <code><poem> ;Systemvariable holen:var SysVar = dom.GetObject("SysVar") ;Systemvariable lesen:SysVar.Value() ;Systemvariable setzen:SysVar.Variable(1) ;Steuerung auf Geräteparameter holen:var SollTemp = dom.GetObject("Heizung K:4").DPByHssDP("SET_TEMPERATURE") ;Geräteparameter lesen:SollTemp.Value() ;Geräteparameter setzen:SollTemp.State(SysVar.Value()) ;Gewerkeliste holen:dom.GetObject(ID_FUNCTIONS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Raumliste holen:dom.GetObject(ID_ROOMS) :''Liefert ein array von IDs, mit denen über GetObject() wiederum die eigentlichen Objekte geholt werden müssen.'' ;Schleife:foreach(current, array) {} :''array ist ein string mit einer Auflistung von Werten durch Tabulator (\t) getrennt und kann auch selbst erzeugt werden.'' :''string array = "Sensor1\tSensor2";'' ;Log output:WriteLine("Text, Value: " + SysVar.Value()) ;Linux-Befehl ausführen :string stdout; :string stderr; :system.Exec("Befehl", &stdout, &stderr); :''Beispiel für den Aufruf einer URL, stdout und stderr können wegfallen. User und Passwort sind in der URL unterzubringen, das Kaufmanns-Und (&) ist zu escapen'' :system.Exec("wget -q -O /dev/null --no-check-certificate <nowiki>https://user:password@server.de?command\&parameter=1</nowiki>"); ;Anderes Programm aufrufen :var programObj = dom.GetObject("ZielProgramm"); :programObj.ProgramExecute(); </poem></code> === Übersicht der Objekthierarchie === [[Datei:HomeMatic_Script_Objekthierarchie.png]] === Dokumentation von ELV === [[Datei:HM_Skript_Teil_1_Sprachbeschreibung_V2.2.pdf]] [[Datei:HM_Skript_Teil_2_Objektmodell_V1.2.pdf]] [[Datei:HM_Skript_Teil_3_Beispiele_V1.1.pdf]] [[Datei:HM_Skript_Teil_4-Datenpunkte.pdf]] === Sonnenauf- und Sonnenuntergang === Eine Astrofunktion stellt den Zeitpunkt des lokalen offiziellen Sonnenauf- und Sonnenuntergangs zur Verfügung. Auf diese kann in der Zeitsteuerung per Radio-Button zugegriffen werden. In Skripten erreicht man diese Werte über: <code>system.SunriseTime</code> und <code>system.SunsetTime</code> === CPU Temperatur in Systemvariable schreiben === In einem periodisch aufgerufenen Programm (z.B. minütlich) kann man dieses Skript hinterlegen: <code><poem> string result; real temp; object objCpuTemp = dom.GetObject("CpuTemp"); system.Exec("cat /sys/class/thermal/thermal_zone0/temp", &result); temp = (0.0 + result.ToInteger()) / 1000.0; objCpuTemp.State(temp); </poem></code> In der Systemvariablen "CpuTemp" (ist anzulegen) hat man dann immer die recht aktuelle CPU Temperatur der Zentrale. (Kann sein, dass es ein Raspberry PI sein muss.) == Dimmer == Um einen Dimm-Aktor (Steckdose, Schalter) automatisch linear ansteigen (oder abfallen) zu lassen, wird mit sog. Rampen gearbeitet. Hier werden die erforderlichen Parameter einmal an den Aktor abgesetzt, der von da an diese Rampe von selbst umsetzt. Die Parameter für eine solche Rampenfunktion müssen aus unerfindlichen Gründen zeitgleich aber in einer bestimmten Reihenfolge abgesetzt werden: # sofort Einschaltdauer setzen (definiert, wie lange der Aktor eingeschaltet bleibt, nachdem er die Rampe vollständig hochgefahren ist) # sofort Dimmzeit setzen (definiert, wie breit die Rampe sein soll, also wie lange der Dimmprozess dauern soll) # sofort Dimmwert setzen (definiert, auf welchen Wert der Dimmaktor sich innerhalb der Dimmzeit hoch- oder runterfahren soll) Jetzt beginnt der Aktor mit dem linearen Dimmen. == Besonderheiten beim Raspberry PI 3 (RaspiMatic, RaspberryMatic) == Bevor die CCU3 auf den Markt kam, die auch auf einem Raspberry PI 3 basiert, gab es community-unterstützt schon die Möglichkeit, sich einen PI3 anzuschaffen, mit einem dafür vorgesehenen Funkmodul auszustatten und die frei verfügbare Homematic Software auf eine microSD Karte zu spielen, damit den PI3 zu booten und ihn somit in eine vollwertige Homematic zu verwandeln, die sogar um einies leistungsstärker war als die CCU2. Natürlich gibt es bei so einer OpenSource Lösung Kleinigkeiten, die anders sind oder Sachen, die man verändern / verbessern kann ;) === XML-API absichern === Das AddOn "XML-API" ist wichtig für manche externe Apps, die mit der Homematic kommunizieren wollen. Sie ist eine Schnittstelle nach außen, ohne das WebUI zu verwenden. Leider ist sie vollkommen ungesichert. Weder passwortgeschützt noch verschlüsselt. Der fehlenden Verschlüsselung kann man durch HTTPS abhelfen, was man ohnehin auf der Zentrale aktiviert haben sollte, aber den wichtigeren Passwortschutz muss man selber nachrüsten: Hierzu greift man in die Konfiguration des Webservers ein. Verwendet wird auf Homematic der lighttpd Server, dem man für 2 Pfade eine basic HTTP authentication unterjubelt. Das bedeutet, dass bei jeglichem Zugriff auf diese Pfade (es geht um die XML-API Pfade), ein Benutzername und ein Kennwort erwartet werden, ohne die kein Zugriff möglich ist. Der Benutzer sollte bei der Abfrage nicht mitgeteilt werden und das Kennwort sehr lang sein (> 12 Zeichen). So hält das Ganze auch einer brute-force Attacke stand. In meiner Variante sind Benutzer und Kennwort im PI3 Dateisystem im Klartext hinterlegt (hier kommt ja normalerweise niemand dran), man kann das vielleicht aber auch auf MD5, SHA1 etc. umstellen. In der Config des lighttpd Servers sieht man, dass am Ende alle .conf Dateien im Pfad /usr/local/etc/config/lighttpd ausgeführt werden. Also müssen wir unsere Änderung nur hier platzieren, und sie wird angewendet. '''/usr/local/etc/config/lighttpd/xmlauth.conf''' (mod 644, rw-r--r--) <pre> auth.backend = "plain" auth.backend.plain.userfile = "/usr/local/etc/.lighttpdpassword" auth.require = ( "/config/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ), "/addons/xmlapi" => ( "method" => "basic", "realm" => "External access protection", "require" => "user=USERNAME" ) ) </pre> USERNAME wird hier durch den Benutzernamen ersetzt, den man sich ausdenkt. [[Datei:PI3_usr_local_etc_config_lighttpd_xmlauth.7z]] <-- Download. In entsprechenden Pfad kopieren. '''/usr/local/etc/.lighttpdpassword''' (mod 644, rw-r--r--) <pre> USERNAME:PASSWORD </pre> USERNAME und PASSWORD werden hier durch die Benutzernamen/Passwort-Kombination ersetzt, den man sich ausdenkt, passend zur oberen Datei natürlich. RaspberryMatic neustarten, und die XML-API ist abgesichert! === Diagramme ab Version 3.37 wieder auf die SD Karte speichern === Nach dem Update auf die Version 3.37 erschien in der WebUI anstatt der Diagramme die Meldung <pre>Es ist kein USB-Speicher für die Speicherung der Diagrammdaten vorhanden oder auf diesen konnte nicht zugegriffen werden. Um die Diagrammdaten zu speichern, ist externer USB-Speicher erforderlich.</pre> In den "Allgemeinen Einstellungen" der Zentrale unter "Externer USB Speicher" liest man: <pre>microSD Karte ist vorhanden aber nicht initialisiert.</pre> Diese Änderung ist beabsichtigt, um die SD Karte, auf der sich ja das Betriebssystem befindet zu schonen. Für das Speichern der Diagramme soll ein USB Stick eingesteckt werden, auf dem auch die ab dieser Version automatisch durchgeführten Backups landen sollen. Macht Sinn, gefällt aber nicht jedem. Die Gründe dafür können sehr individuell sein. Darum erkläre ich hier, wie ich es realisiert habe, dass die Diagrammdaten wieder auf die SD Karte geschrieben werden. Das könnte aber auch das Deaktivieren der automatischen Backups erfordern, weil die SD Karte sonst rasch voll läuft und möglicherweise ein manuelles Backup auch die automatischen Backups beinhaltet. Das habe ich noch nicht untersucht. Um die microSD Karte weiterhin für die Speicherung der Diagramme zu verwenden müssen 2 Dateien auf das Dateisystem des PI3 kopiert und mit den richtigen Attributen versehen werden: '''/usr/local/etc/rc.postinit''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh /usr/local/bin/InitSD </pre> '''/usr/local/bin/InitSD''' (mod 755, rwx-rx-rx) <pre> #!/bin/sh ln -sf /usr/local/sdcard /media/usb0 touch /var/status/USBinitialised touch /var/status/SDinitialised </pre> [[Datei:PI3_usr_local.7z]] <- Download. Entpacken und entsprechend auf den PI3 kopieren. == Monit (Watachdog) == Es gibt etliche Überwachungen, die alle vom tool "monit" übernommen werden. Temporär (also bis zum Neustart) lassen sich verschiedene Überwachungen abschalten per SSH: <pre>monit unmonitor <dienst></pre> z.B. <pre>monit unmonitor hasInternet</pre> Auch aus einem Homemetic Skript kann das ausgeführt werden: <pre>system.Exec("monit unmonitor hasInternet");</pre> Die Konfiguration von monit findet man unter <pre>/etc/monitrc</pre> Hier können ggf. Überwachungen auskommentiert werden, was aber bei einem Update wieder überschrieben würde. 41e3f4142519ceb94ced635a99e5e5a87e984cfa FFmpeg 0 51 2951 323 2019-06-28T22:55:58Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. == Einzelbilder zu einem Video machen == Aber ist auch das beste freeware tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.<br> Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die einen Namen wie <u>Frame %03d.jpg</u> (passend zu den bild-Dateien) trägt. Die Windows-Dateinamenkonvention erlaubt das zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. == Mehrere Audio-Streams == Die Syntax, um mehrere Audio-Streams mit einem Video-Stream zu multiplexen, ist folgende Syntax notwendig:<br> <pre> ffmpeg <Input params> -i <Audio/Video input file 0> -i <Audio input file 1> -map 0:0 -map 0:1 <Output file> -map 1:0 -newaudio </pre> == Dateien zusammenfügen == Stichwort "concat". Ja, ffmpeg kann auch Dateien des selben Typs zu einer Datei zusammenfügen und dabei noch ggf. in ein gewünschtes Zielformat konvertieren. Die Textdatei, die dazu als Quell-Liste der Dateien dient, die aneinandergehängt werden sollen muss so aussehen: <poem> file 'path\to\file' file \path\to\nextfile' </poem> Sagen wir, sie heißt Liste.txt Die Parameter für ffmpeg lauten: <pre> ffmpeg -f concat -safe 0 -i Liste.txt </pre> == Quellen == ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ https://trac.ffmpeg.org/wiki/Concatenate 1f769ded56dc6319cdf9581387e2c3cbbc772196 2952 2951 2019-06-28T22:57:35Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. == Einzelbilder zu einem Video machen == Aber ist auch das beste freeware tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.<br> Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die einen Namen wie <u>Frame %03d.jpg</u> (passend zu den bild-Dateien) trägt. Die Windows-Dateinamenkonvention erlaubt das zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. == Dateien zusammenfügen == Stichwort "concat". Ja, ffmpeg kann auch Dateien des selben Typs zu einer Datei zusammenfügen und dabei noch ggf. in ein gewünschtes Zielformat konvertieren. Es kann sein, dass das und hier und die Sache mit den Einzelbilden alternativ verwendet werden können. Die Textdatei, die dazu als Quell-Liste der Dateien dient, die aneinandergehängt werden sollen muss so aussehen: <poem> file 'path\to\file' file 'path\to\nextfile' </poem> Sagen wir, sie heißt Liste.txt Die Parameter für ffmpeg lauten: <pre> ffmpeg -f concat -safe 0 -i Liste.txt </pre> == Mehrere Audio-Streams == Die Syntax, um mehrere Audio-Streams mit einem Video-Stream zu multiplexen, ist folgende Syntax notwendig:<br> <pre> ffmpeg <Input params> -i <Audio/Video input file 0> -i <Audio input file 1> -map 0:0 -map 0:1 <Output file> -map 1:0 -newaudio </pre> == Quellen == ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ https://trac.ffmpeg.org/wiki/Concatenate 6b281de8ba6f1d4b874510bdd450d8416f09bfae DHL Kundenkarte 0 2653 2954 2019-08-30T11:01:16Z Satria 1 Die Seite wurde neu angelegt: „== DHL Kundenkarten-Barcode aus Postnummer ermitteln == An der DHL Packstation authentifiziert man sich mit seiner Postnummer. Früher ging das durch einschie…“ wikitext text/x-wiki == DHL Kundenkarten-Barcode aus Postnummer ermitteln == An der DHL Packstation authentifiziert man sich mit seiner Postnummer. Früher ging das durch einschieben der Kundenkarte, seit 2019 aber nur noch per Barcode (den ältere Karten nicht haben) oder aber durch manuelle Eingabe der Postnummer am Display. Wenn man sich keine neue Karte bestellen möchte, kann man diesen Barcode selber erzeugen, es ist aber nicht einfach nur die Postnummer in einem Format wie Code39 oder ITF. Die Regeln zur Erzeugung des Barcodes sind: # Postnummer '''x 631''' = Ergebnis (z.B. 123456789 x 631 = 77901233859) # Ergebnis mit der einstelligen '''[[http://werner.rothschopf.net/modulo10.htm Luhn]]''' Checksumme ergänzen. (77901233859 5) # Der Barcode beginnt immer mit '''3''', gefolgt von so vielen '''Nullen''', dass die gesamte Zahl am Ende 16 Stellen hat ('''3000'''779012338595) # Diese Zahl muss als '''ITF-14''' Barcode erzeugt werden und kann dann zur authentifizierung an der Packstation verwendet werden. == Quellen == https://www.tk79.eu/dhl-packstation-karten-barcode-anhand-der-postnummer-erstellen/ http://werner.rothschopf.net/modulo10.htm https://planetcalc.com/2464/ dcfa5850246d84d44f49675ae2d1b14748e4a639 Mozilla Firefox 0 9 2955 103 2019-09-19T09:54:19Z Satria 1 wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ee4baf0bea0c96e91f1586392a446884fc081c1c UEFI 0 2654 2959 2019-09-26T14:05:02Z Satria 1 Die Seite wurde neu angelegt: „== Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/GRUB https://de.wikipedia.org/wiki/Bootmgr“ wikitext text/x-wiki == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/GRUB https://de.wikipedia.org/wiki/Bootmgr 04c8c62b116e4dbf3c952895f903ac742dce00ca 2962 2959 2019-09-28T17:12:11Z Satria 1 wikitext text/x-wiki == Der Unterschied zum BIOS == Was ist der wesentliche Unterschied von UEFI zum vorigen BIOS in Bezug auf den Bootvorgang? Nach dem POST oder "Power On Self Test", (den es bei beiden Systemen gibt), fragt das BIOS die im Setup ausgewählte Festplatte nach der als "Aktiv" markierten Partition. (Sofern es im MBR keinen Bootmanager wie GRUB4DOS gibt). In dieser Partition wird der erste Sektor (der Bootsektor) angesprungen, der ausführbaren Code enthält und das Laden der Startdateien und somit des Betriebssystems übernimmt. Beim UEFI muss im Setup (gern NVRAM genannt, weil hier die Einstellungen persistiert werden) mindestens eine Startkonfiguration hinterlegt und aktiviert sein. Diese wird über die Setups diverser Betriebssysteme per API in das NVRAM geschrieben. Darin enthalten ist der Speicherort der zu ladenden .efi Datei, die beim Booten angesprungen wird. Ein MBR oder Bootsektor spielt hier keine Rolle mehr. Die .efi Datei muss auf einer beliebigen FAT oder FAT32 Partition liegen. Sie enthält ausführbaren Code und übernimmt das restliche Starten des Betriebssystems. Eine Ausnahme stellen Wechseldatenträger wie USB-Sticks dar. Hier kann beim Bootvorgang und je nach UEFI Implementierung der Datenträger als Ganzes zum Starten ausgewählt werden. (s. ''Die .efi Startdateien''). == Die .efi Startdateien == Eine EFI-Systempartition muss ein FAT oder FAT32 Dateisystem besitzen. Deshalb kann man sie (wenn auch auf Umwegen) z.B. unter Windows ganz normal als Laufwerk mounten und lesen und beschreiben. Grundsätzlich können Verzeichnisse und Dateien dort beliebig angelegt und im UEFI NVRAM als Startkonfiguration hinterlegt werden, aber es gibt auch ein paar Konventionen. Normalerweise gibt es auf dieser Partition zunächst ein Verzeichnis "EFI". Darin "Boot". Darin eine Datei "Bootx64.efi". Diese Datei wird geladen, wenn der gesamte Datenträger zum Booten ausgewählt wird, wie es z.B. bei USB-Sticks der Fall sein kann. Sie kann auch als "fallback" gesehen werden. Windows 10 z.B. legt diese auch Datei an, platziert seine eigentlichen Startdateien aber unter \EFI\Microsoft\Boot. Die Bootx64.efi dürfte im fallback-Fall aber zum gleichen Bootvorgang führen, wie die eigentlichen .efi Dateien. == UEFI Shell == Es gibt die mehr oder weniger offizielle UEFI-Shell, ein Programm mit Eingabeaufforderung, das eine ganze Reihe von Befehlen bereitstellt, die es z.B. auch ermöglichen, Startkonfigurationen hinzuzufügen, zu bearbeiten und auch zu löschen. Der normale Dateiname ist "Shellx64.efi". Sie kann durch einen Bootmanager wie z.B. GRUB2 geladen werden, aber auch durch manches UEFI-Setup direkt. Dafür muss es auf irgendeiner FAT oder FAT32 Partition direkt im Hauptverzeichnis liegen. https://github.com/tianocore/edk2/tree/UDK2018/ShellBinPkg/UefiShell == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/GRUB https://de.wikipedia.org/wiki/Bootmgr a5247faf28be430f5d8393c71f6bd2756b837fd4 UEFI 0 2654 2966 2962 2019-10-18T23:15:48Z Satria 1 /* Quellen */ wikitext text/x-wiki == Der Unterschied zum BIOS == Was ist der wesentliche Unterschied von UEFI zum vorigen BIOS in Bezug auf den Bootvorgang? Nach dem POST oder "Power On Self Test", (den es bei beiden Systemen gibt), fragt das BIOS die im Setup ausgewählte Festplatte nach der als "Aktiv" markierten Partition. (Sofern es im MBR keinen Bootmanager wie GRUB4DOS gibt). In dieser Partition wird der erste Sektor (der Bootsektor) angesprungen, der ausführbaren Code enthält und das Laden der Startdateien und somit des Betriebssystems übernimmt. Beim UEFI muss im Setup (gern NVRAM genannt, weil hier die Einstellungen persistiert werden) mindestens eine Startkonfiguration hinterlegt und aktiviert sein. Diese wird über die Setups diverser Betriebssysteme per API in das NVRAM geschrieben. Darin enthalten ist der Speicherort der zu ladenden .efi Datei, die beim Booten angesprungen wird. Ein MBR oder Bootsektor spielt hier keine Rolle mehr. Die .efi Datei muss auf einer beliebigen FAT oder FAT32 Partition liegen. Sie enthält ausführbaren Code und übernimmt das restliche Starten des Betriebssystems. Eine Ausnahme stellen Wechseldatenträger wie USB-Sticks dar. Hier kann beim Bootvorgang und je nach UEFI Implementierung der Datenträger als Ganzes zum Starten ausgewählt werden. (s. ''Die .efi Startdateien''). == Die .efi Startdateien == Eine EFI-Systempartition muss ein FAT oder FAT32 Dateisystem besitzen. Deshalb kann man sie (wenn auch auf Umwegen) z.B. unter Windows ganz normal als Laufwerk mounten und lesen und beschreiben. Grundsätzlich können Verzeichnisse und Dateien dort beliebig angelegt und im UEFI NVRAM als Startkonfiguration hinterlegt werden, aber es gibt auch ein paar Konventionen. Normalerweise gibt es auf dieser Partition zunächst ein Verzeichnis "EFI". Darin "Boot". Darin eine Datei "Bootx64.efi". Diese Datei wird geladen, wenn der gesamte Datenträger zum Booten ausgewählt wird, wie es z.B. bei USB-Sticks der Fall sein kann. Sie kann auch als "fallback" gesehen werden. Windows 10 z.B. legt diese auch Datei an, platziert seine eigentlichen Startdateien aber unter \EFI\Microsoft\Boot. Die Bootx64.efi dürfte im fallback-Fall aber zum gleichen Bootvorgang führen, wie die eigentlichen .efi Dateien. == UEFI Shell == Es gibt die mehr oder weniger offizielle UEFI-Shell, ein Programm mit Eingabeaufforderung, das eine ganze Reihe von Befehlen bereitstellt, die es z.B. auch ermöglichen, Startkonfigurationen hinzuzufügen, zu bearbeiten und auch zu löschen. Der normale Dateiname ist "Shellx64.efi". Sie kann durch einen Bootmanager wie z.B. GRUB2 geladen werden, aber auch durch manches UEFI-Setup direkt. Dafür muss es auf irgendeiner FAT oder FAT32 Partition direkt im Hauptverzeichnis liegen. https://github.com/tianocore/edk2/tree/UDK2018/ShellBinPkg/UefiShell == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/GRUB https://de.wikipedia.org/wiki/Bootmgr === Weitere links === https://antergos.com/wiki/de/miscellaneous/how-to-fix-grub-with-efi-boot/ https://wiki.ubuntuusers.de/EFI_USB-Stick/ https://thinkpad-forum.de/threads/123262-EFI-Grub2-Multiboot-HowTo 2dbb05de0b9cdd781d8f72ede245ff13026bd1b1 Hauptseite 0 1 2967 2958 2019-11-03T13:14:26Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SeedDMS]] [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] d68439c84cf9d49242cfe1d132eb28ab44404110 2968 2967 2019-11-03T13:14:48Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] b7576eea291f26d3dfbc08542ce0f68e1bde8a8c 2977 2968 2019-12-14T00:12:38Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] d71e83f65ad7a6f569ccc9453d23817699b0152d 2993 2977 2020-01-14T15:03:22Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] b44dd8b4f597ca37497f3f9da88cd72ca0b020da 3007 2993 2020-05-02T18:06:21Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 9762f8460b108547c89e7d2d9fa2e916f37fa922 3010 3007 2020-05-28T01:02:46Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] fb71330446fdda4beb68ab762bac319c695ee95a 3015 3010 2020-06-09T07:47:08Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 24ea88811a14fcb9ecfeca3cd820aaffd02f205a SeedDMS 0 2655 2969 2019-11-03T14:01:14Z Satria 1 Die Seite wurde neu angelegt: „== Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP und MySQL. https://www.seeddms.org == SeedDMS auf ZyX…“ wikitext text/x-wiki == Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP und MySQL. https://www.seeddms.org == SeedDMS auf ZyXEL NAS == Gleich vorweg: Es gehört einiges dazu, SeedDMS auf dem Linux eines ZyXEL NAS laufen zu lassen! Aber der integrierte PHP-fähige Webserver kann dazu verwendet werden, mit SeedDMS ein Dokumentenmanagementsystem aufzusetzen, ohne Cloud und Internet, das - wenn man will - aber trotzdem von überall erreichbar ist. === Grundlagen === ==== Web-Publishing mit HTTPS ==== Damit der integrierte Webserver Inhalte von Freigaben als Webinhalte darstellt, müssen wir das <span style="color:orange;">'''Web-Publishing'''</span> aktivieren. Wer dabei eine erhöhte Sicherheit für seine Login-Daten haben möchte, aktiviert außerdem HTTPS. ==== Neue Freigabe mit Webfreigabe ==== Am besten ist es, man erstellt auf dem NAS eine eigene Freigabe, z.B. <span style="color:orange;">'''dms'''</span> und gibt dem Benutzer die nötigen Berechtigungen, mit dem wir hier die Installation vornehmen wollen. Bei dieser Freigabe muss die <span style="color:orange;">'''Webfreigabe'''</span> aktiviert sein ('dms' auf Web veröffentlichen). Damit nun aber nicht jeder den Verzeichnisinhalt dieser Freigabe sehen kann, erstellen wir darin eine Datei <span style="color:orange;">'''.htaccess'''</span> mit dem Inhalt: <pre>Options -Indexes</pre> Jetzt landet man mit einem Browser unter <span style="color:orange;">https://NAS:5001/MyWeb/dms</span>, kann aber nichts sehen, weil noch keine Startseite erstellt wurde. ==== Aktivierter SSH-Zugang ==== Wir kommen nicht umher, einige Dinge direkt auf dem Linux zu erledigen, und brauchen daher einen aktivierten <span style="color:orange;">SSH Zugang</span> zum NAS und einen SSH-Client, wie z.B. PuTTY. === SeedDMS vorbereiten === ==== Herunterladen und entpacken ==== SeedDMS ist frei verfügbar und kann [https://www.seeddms.org/index.php?id=7 hier] heruntergeladen werden. Im Prinzip muss es nur auf die dafür vorgesehene Freigabe (dms) entpackt werden. Am besten geht das, wenn man das .tar auf die Freigabe kopiert, und den Rest in der SSH Shell erledigt, weil dann die links erhalten bleiben, was wichtig ist! Am Ende sollte das Ganze Paket ohne unnötige Unterordner auf der Freigabe liegen, so dass die Ordner wie 'data' und 'www' etc. direkte Unterordner der Freigabe sind. <pre>tar -xvf seeddms-quickstart-5.1.12.tar</pre> zum Entpacken und dann noch wie gewünscht verschieben: <pre>mv seeddms51x/* .</pre> ==== PHP ==== SeedDMS ist der Meinung, es braucht PHP Version <span style="color:orange;">5.6.38</span>, aber auf meinem NAS mit PHP Version <span style="color:orange;">5.5.22</span> läuft es auch, man muss sich nur durch die Installation mogeln ;) Dazu verändern wir folgende Datei: <ins>/inc/inc.ClassSettings.php</ins> <pre>if (version_compare(PHP_VERSION, '5.6.38') < 0) {</pre> austauschen gegen: <pre>if (version_compare(PHP_VERSION, '5.5.22') < 0) {</pre> ==== MySQL ==== Es muss eine <span style="color:orange;">MySQL Datenbank</span> bereitgestellt werden, auf die SeedDMS Zugriff erhält. ==== SeedDMS konfigurieren ==== === SeedDMS installieren === 6981d7cec156f898e2d78ec22f7145639dfef0c1 2970 2969 2019-11-03T14:12:11Z Satria 1 wikitext text/x-wiki == Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP und MySQL. https://www.seeddms.org == SeedDMS auf ZyXEL NAS == Gleich vorweg: Es gehört einiges dazu, SeedDMS auf dem Linux eines ZyXEL NAS laufen zu lassen! Aber der integrierte PHP-fähige Webserver kann dazu verwendet werden, mit SeedDMS ein Dokumentenmanagementsystem aufzusetzen, ohne Cloud und Internet, das - wenn man will - aber trotzdem von überall erreichbar ist. === Grundlagen === ==== Web-Publishing mit HTTPS ==== Damit der integrierte Webserver Inhalte von Freigaben als Webinhalte darstellt, müssen wir das <span style="color:orange;">'''Web-Publishing'''</span> aktivieren. Wer dabei eine erhöhte Sicherheit für seine Login-Daten haben möchte, aktiviert außerdem HTTPS. ==== Neue Freigabe mit Webfreigabe ==== Am besten ist es, man erstellt auf dem NAS eine eigene Freigabe, z.B. <span style="color:orange;">'''dms'''</span> und gibt dem Benutzer die nötigen Berechtigungen, mit dem wir hier die Installation vornehmen wollen. Bei dieser Freigabe muss die <span style="color:orange;">'''Webfreigabe'''</span> aktiviert sein ('dms' auf Web veröffentlichen). Damit nun aber nicht jeder den Verzeichnisinhalt dieser Freigabe sehen kann, erstellen wir darin eine Datei <span style="color:orange;">'''.htaccess'''</span> mit dem Inhalt: <pre>Options -Indexes</pre> Jetzt landet man mit einem Browser unter <span style="color:orange;">https://NAS:5001/MyWeb/dms</span>, kann aber nichts sehen, weil noch keine Startseite erstellt wurde. ==== Aktivierter SSH-Zugang ==== Wir kommen nicht umher, einige Dinge direkt auf dem Linux zu erledigen, und brauchen daher einen aktivierten <span style="color:orange;">SSH Zugang</span> zum NAS und einen SSH-Client, wie z.B. PuTTY. === SeedDMS vorbereiten === ==== Herunterladen und entpacken ==== SeedDMS ist frei verfügbar und kann [https://www.seeddms.org/index.php?id=7 hier] heruntergeladen werden. Im Prinzip muss es nur auf die dafür vorgesehene Freigabe (dms) entpackt werden. Am besten geht das, wenn man das .tar auf die Freigabe kopiert, und den Rest in der SSH Shell erledigt, weil dann die links erhalten bleiben, was wichtig ist! Am Ende sollte das Ganze Paket ohne unnötige Unterordner auf der Freigabe liegen, so dass die Ordner wie 'data' und 'www' etc. direkte Unterordner der Freigabe sind. <pre>tar -xvf seeddms-quickstart-5.1.12.tar</pre> zum Entpacken und dann noch wie gewünscht verschieben: <pre>mv seeddms51x/* .</pre> ==== PHP ==== SeedDMS ist der Meinung, es braucht PHP Version <span style="color:orange;">5.6.38</span>, aber auf meinem NAS mit PHP Version <span style="color:orange;">5.5.22</span> läuft es auch, man muss sich nur durch die Installation mogeln ;) Dazu wird folgende Datei verändert: <ins>/inc/inc.ClassSettings.php</ins> <pre>if (version_compare(PHP_VERSION, '5.6.38') < 0) {</pre> austauschen gegen: <pre>if (version_compare(PHP_VERSION, '5.5.22') < 0) {</pre> ==== MySQL ==== Es muss eine <span style="color:orange;">MySQL Datenbank</span> bereitgestellt werden, auf die SeedDMS Zugriff erhält. ==== SeedDMS konfigurieren ==== Vor der Installation muss man die Datei /conf/settings.xml an die Gegebenheiten des NAS anpassen, was absolute Pfade auf dem Dateisystem (/i-data/...) und relative Pfade im Browser (/MyWeb/dms/...) angeht und auch die Benutzerdaten für die Datenbank. Um eine Browserinstallation zu ermöglichen, muss noch die Datei <ins>conf/ENABLE_INSTALL_TOOL</ins> angelegt werden. === SeedDMS installieren === Jetzt kann man SeedDMS über den Browser installieren: <span style="color:orange;">https://NAS:5001/MyWeb/dms/www/install/install.php</span> == Tesseract OCR auf ZyXEL NAS == Damit aus dem schönen Dokumentenmanagementsystem auch etwas richtig schickes wird, sollte man es um eine OCR (Optical Character Recognition) erweitern. Hierzu eignet sich das freie tool <span style="color:orange;">tesseract</span>. 213831bd1d8b837d278c92e07f4aea39fe1f5eac 2971 2970 2019-11-03T14:12:55Z Satria 1 /* SeedDMS installieren */ wikitext text/x-wiki == Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP und MySQL. https://www.seeddms.org == SeedDMS auf ZyXEL NAS == Gleich vorweg: Es gehört einiges dazu, SeedDMS auf dem Linux eines ZyXEL NAS laufen zu lassen! Aber der integrierte PHP-fähige Webserver kann dazu verwendet werden, mit SeedDMS ein Dokumentenmanagementsystem aufzusetzen, ohne Cloud und Internet, das - wenn man will - aber trotzdem von überall erreichbar ist. === Grundlagen === ==== Web-Publishing mit HTTPS ==== Damit der integrierte Webserver Inhalte von Freigaben als Webinhalte darstellt, müssen wir das <span style="color:orange;">'''Web-Publishing'''</span> aktivieren. Wer dabei eine erhöhte Sicherheit für seine Login-Daten haben möchte, aktiviert außerdem HTTPS. ==== Neue Freigabe mit Webfreigabe ==== Am besten ist es, man erstellt auf dem NAS eine eigene Freigabe, z.B. <span style="color:orange;">'''dms'''</span> und gibt dem Benutzer die nötigen Berechtigungen, mit dem wir hier die Installation vornehmen wollen. Bei dieser Freigabe muss die <span style="color:orange;">'''Webfreigabe'''</span> aktiviert sein ('dms' auf Web veröffentlichen). Damit nun aber nicht jeder den Verzeichnisinhalt dieser Freigabe sehen kann, erstellen wir darin eine Datei <span style="color:orange;">'''.htaccess'''</span> mit dem Inhalt: <pre>Options -Indexes</pre> Jetzt landet man mit einem Browser unter <span style="color:orange;">https://NAS:5001/MyWeb/dms</span>, kann aber nichts sehen, weil noch keine Startseite erstellt wurde. ==== Aktivierter SSH-Zugang ==== Wir kommen nicht umher, einige Dinge direkt auf dem Linux zu erledigen, und brauchen daher einen aktivierten <span style="color:orange;">SSH Zugang</span> zum NAS und einen SSH-Client, wie z.B. PuTTY. === SeedDMS vorbereiten === ==== Herunterladen und entpacken ==== SeedDMS ist frei verfügbar und kann [https://www.seeddms.org/index.php?id=7 hier] heruntergeladen werden. Im Prinzip muss es nur auf die dafür vorgesehene Freigabe (dms) entpackt werden. Am besten geht das, wenn man das .tar auf die Freigabe kopiert, und den Rest in der SSH Shell erledigt, weil dann die links erhalten bleiben, was wichtig ist! Am Ende sollte das Ganze Paket ohne unnötige Unterordner auf der Freigabe liegen, so dass die Ordner wie 'data' und 'www' etc. direkte Unterordner der Freigabe sind. <pre>tar -xvf seeddms-quickstart-5.1.12.tar</pre> zum Entpacken und dann noch wie gewünscht verschieben: <pre>mv seeddms51x/* .</pre> ==== PHP ==== SeedDMS ist der Meinung, es braucht PHP Version <span style="color:orange;">5.6.38</span>, aber auf meinem NAS mit PHP Version <span style="color:orange;">5.5.22</span> läuft es auch, man muss sich nur durch die Installation mogeln ;) Dazu wird folgende Datei verändert: <ins>/inc/inc.ClassSettings.php</ins> <pre>if (version_compare(PHP_VERSION, '5.6.38') < 0) {</pre> austauschen gegen: <pre>if (version_compare(PHP_VERSION, '5.5.22') < 0) {</pre> ==== MySQL ==== Es muss eine <span style="color:orange;">MySQL Datenbank</span> bereitgestellt werden, auf die SeedDMS Zugriff erhält. ==== SeedDMS konfigurieren ==== Vor der Installation muss man die Datei /conf/settings.xml an die Gegebenheiten des NAS anpassen, was absolute Pfade auf dem Dateisystem (/i-data/...) und relative Pfade im Browser (/MyWeb/dms/...) angeht und auch die Benutzerdaten für die Datenbank. Um eine Browserinstallation zu ermöglichen, muss noch die Datei <ins>conf/ENABLE_INSTALL_TOOL</ins> angelegt werden. === SeedDMS installieren === Jetzt kann man SeedDMS über den Browser installieren: <span style="color:orange;"><nowiki>https://NAS:5001/MyWeb/dms/www/install/install.php</nowiki></span> == Tesseract OCR auf ZyXEL NAS == Damit aus dem schönen Dokumentenmanagementsystem auch etwas richtig schickes wird, sollte man es um eine OCR (Optical Character Recognition) erweitern. Hierzu eignet sich das freie tool <span style="color:orange;">tesseract</span>. a073741443cbfb2064c521b856acfcaa12ed3dec 2972 2971 2019-11-03T14:37:30Z Satria 1 /* Tesseract OCR auf ZyXEL NAS */ wikitext text/x-wiki == Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP und MySQL. https://www.seeddms.org == SeedDMS auf ZyXEL NAS == Gleich vorweg: Es gehört einiges dazu, SeedDMS auf dem Linux eines ZyXEL NAS laufen zu lassen! Aber der integrierte PHP-fähige Webserver kann dazu verwendet werden, mit SeedDMS ein Dokumentenmanagementsystem aufzusetzen, ohne Cloud und Internet, das - wenn man will - aber trotzdem von überall erreichbar ist. === Grundlagen === ==== Web-Publishing mit HTTPS ==== Damit der integrierte Webserver Inhalte von Freigaben als Webinhalte darstellt, müssen wir das <span style="color:orange;">'''Web-Publishing'''</span> aktivieren. Wer dabei eine erhöhte Sicherheit für seine Login-Daten haben möchte, aktiviert außerdem HTTPS. ==== Neue Freigabe mit Webfreigabe ==== Am besten ist es, man erstellt auf dem NAS eine eigene Freigabe, z.B. <span style="color:orange;">'''dms'''</span> und gibt dem Benutzer die nötigen Berechtigungen, mit dem wir hier die Installation vornehmen wollen. Bei dieser Freigabe muss die <span style="color:orange;">'''Webfreigabe'''</span> aktiviert sein ('dms' auf Web veröffentlichen). Damit nun aber nicht jeder den Verzeichnisinhalt dieser Freigabe sehen kann, erstellen wir darin eine Datei <span style="color:orange;">'''.htaccess'''</span> mit dem Inhalt: <pre>Options -Indexes</pre> Jetzt landet man mit einem Browser unter <span style="color:orange;">https://NAS:5001/MyWeb/dms</span>, kann aber nichts sehen, weil noch keine Startseite erstellt wurde. ==== Aktivierter SSH-Zugang ==== Wir kommen nicht umher, einige Dinge direkt auf dem Linux zu erledigen, und brauchen daher einen aktivierten <span style="color:orange;">SSH Zugang</span> zum NAS und einen SSH-Client, wie z.B. PuTTY. === SeedDMS vorbereiten === ==== Herunterladen und entpacken ==== SeedDMS ist frei verfügbar und kann [https://www.seeddms.org/index.php?id=7 hier] heruntergeladen werden. Im Prinzip muss es nur auf die dafür vorgesehene Freigabe (dms) entpackt werden. Am besten geht das, wenn man das .tar auf die Freigabe kopiert, und den Rest in der SSH Shell erledigt, weil dann die links erhalten bleiben, was wichtig ist! Am Ende sollte das Ganze Paket ohne unnötige Unterordner auf der Freigabe liegen, so dass die Ordner wie 'data' und 'www' etc. direkte Unterordner der Freigabe sind. <pre>tar -xvf seeddms-quickstart-5.1.12.tar</pre> zum Entpacken und dann noch wie gewünscht verschieben: <pre>mv seeddms51x/* .</pre> ==== PHP ==== SeedDMS ist der Meinung, es braucht PHP Version <span style="color:orange;">5.6.38</span>, aber auf meinem NAS mit PHP Version <span style="color:orange;">5.5.22</span> läuft es auch, man muss sich nur durch die Installation mogeln ;) Dazu wird folgende Datei verändert: <ins>/inc/inc.ClassSettings.php</ins> <pre>if (version_compare(PHP_VERSION, '5.6.38') < 0) {</pre> austauschen gegen: <pre>if (version_compare(PHP_VERSION, '5.5.22') < 0) {</pre> ==== MySQL ==== Es muss eine <span style="color:orange;">MySQL Datenbank</span> bereitgestellt werden, auf die SeedDMS Zugriff erhält. ==== SeedDMS konfigurieren ==== Vor der Installation muss man die Datei /conf/settings.xml an die Gegebenheiten des NAS anpassen, was absolute Pfade auf dem Dateisystem (/i-data/...) und relative Pfade im Browser (/MyWeb/dms/...) angeht und auch die Benutzerdaten für die Datenbank. Um eine Browserinstallation zu ermöglichen, muss noch die Datei <ins>conf/ENABLE_INSTALL_TOOL</ins> angelegt werden. === SeedDMS installieren === Jetzt kann man SeedDMS über den Browser installieren: <span style="color:orange;"><nowiki>https://NAS:5001/MyWeb/dms/www/install/install.php</nowiki></span> == Tesseract OCR auf ZyXEL NAS == Damit aus dem schönen Dokumentenmanagementsystem auch etwas richtig schickes wird, sollte man es um eine OCR (Optical Character Recognition) erweitern. Hierzu eignet sich das freie tool <span style="color:orange;">tesseract</span>. NOTIZIEN: https://github.com/tesseract-ocr/tesseract/wiki/Compiling <poem> sudo apt-get update sudo apt-get install g++ # or clang++ (presumably) sudo apt-get install autoconf automake libtool sudo apt-get install pkg-config sudo apt-get install libpng-dev sudo apt-get install libjpeg8-dev sudo apt-get install libtiff5-dev sudo apt-get install zlib1g-dev </poem> === ImageMagick === https://imagemagick.org/script/install-source.php ./configure --prefix=/home/pi/ImageMagick/ --with-tiff=yes 51de0afa3466397cb380aa78d1354c49c2e99f39 2973 2972 2019-11-03T18:20:07Z Satria 1 wikitext text/x-wiki == Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP und MySQL. https://www.seeddms.org == SeedDMS auf ZyXEL NAS == Gleich vorweg: Es gehört einiges dazu, SeedDMS auf dem Linux eines ZyXEL NAS laufen zu lassen! Aber der integrierte PHP-fähige Webserver kann dazu verwendet werden, mit SeedDMS ein Dokumentenmanagementsystem aufzusetzen, ohne Cloud und Internet, das - wenn man will - aber trotzdem von überall erreichbar ist. === Grundlagen === ==== Web-Publishing mit HTTPS ==== Damit der integrierte Webserver Inhalte von Freigaben als Webinhalte darstellt, müssen wir das <span style="color:orange;">'''Web-Publishing'''</span> aktivieren. Wer dabei eine erhöhte Sicherheit für seine Login-Daten haben möchte, aktiviert außerdem HTTPS. ==== Neue Freigabe mit Webfreigabe ==== Am besten ist es, man erstellt auf dem NAS eine eigene Freigabe, z.B. <span style="color:orange;">'''dms'''</span> und gibt dem Benutzer die nötigen Berechtigungen, mit dem wir hier die Installation vornehmen wollen. Bei dieser Freigabe muss die <span style="color:orange;">'''Webfreigabe'''</span> aktiviert sein ('dms' auf Web veröffentlichen). Damit nun aber nicht jeder den Verzeichnisinhalt dieser Freigabe sehen kann, erstellen wir darin eine Datei <span style="color:orange;">'''.htaccess'''</span> mit dem Inhalt: <pre>Options -Indexes</pre> Jetzt landet man mit einem Browser unter <span style="color:orange;">https://NAS:5001/MyWeb/dms</span>, kann aber nichts sehen, weil noch keine Startseite erstellt wurde. ==== Aktivierter SSH-Zugang ==== Wir kommen nicht umher, einige Dinge direkt auf dem Linux zu erledigen, und brauchen daher einen aktivierten <span style="color:orange;">SSH Zugang</span> zum NAS und einen SSH-Client, wie z.B. PuTTY. === SeedDMS vorbereiten === ==== Herunterladen und entpacken ==== SeedDMS ist frei verfügbar und kann [https://www.seeddms.org/index.php?id=7 hier] heruntergeladen werden. Im Prinzip muss es nur auf die dafür vorgesehene Freigabe (dms) entpackt werden. Am besten geht das, wenn man das .tar auf die Freigabe kopiert, und den Rest in der SSH Shell erledigt, weil dann die links erhalten bleiben, was wichtig ist! Am Ende sollte das Ganze Paket ohne unnötige Unterordner auf der Freigabe liegen, so dass die Ordner wie 'data' und 'www' etc. direkte Unterordner der Freigabe sind. <pre>tar -xvf seeddms-quickstart-5.1.12.tar</pre> zum Entpacken und dann noch wie gewünscht verschieben: <pre>mv seeddms51x/* .</pre> ==== PHP ==== SeedDMS ist der Meinung, es braucht PHP Version <span style="color:orange;">5.6.38</span>, aber auf meinem NAS mit PHP Version <span style="color:orange;">5.5.22</span> läuft es auch, man muss sich nur durch die Installation mogeln ;) Dazu wird folgende Datei verändert: <ins>/inc/inc.ClassSettings.php</ins> <pre>if (version_compare(PHP_VERSION, '5.6.38') < 0) {</pre> austauschen gegen: <pre>if (version_compare(PHP_VERSION, '5.5.22') < 0) {</pre> ==== MySQL ==== Es muss eine <span style="color:orange;">MySQL Datenbank</span> bereitgestellt werden, auf die SeedDMS Zugriff erhält. ==== SeedDMS konfigurieren ==== Vor der Installation muss man die Datei /conf/settings.xml an die Gegebenheiten des NAS anpassen, was absolute Pfade auf dem Dateisystem (/i-data/...) und relative Pfade im Browser (/MyWeb/dms/...) angeht und auch die Benutzerdaten für die Datenbank. Um eine Browserinstallation zu ermöglichen, muss noch die Datei <span style="color:orange;">conf/ENABLE_INSTALL_TOOL</span> angelegt werden. === SeedDMS installieren === Jetzt kann man SeedDMS über den Browser installieren: <span style="color:orange;"><nowiki>https://NAS:5001/MyWeb/dms/www/install/install.php</nowiki></span> == Tesseract OCR und ImageMagick auf ZyXEL NAS == Damit aus dem schönen Dokumentenmanagementsystem auch etwas richtig schickes wird, sollte man es um eine OCR (Optical Character Recognition) erweitern. Hierzu eignet sich das freie tool <span style="color:orange;">tesseract</span>. Es kann Texte aus Bilddateien herauslesen, die dann von SeedDMS in der Datenbank als Schlüsselbegriffe für die Volltextsuche gespeichert werden. PDFs müssen zuerst in eine Grafik umgewandelt werden, und können dann mit tesseract gescannt werden. Hierzu verwende ich <span style="color:orange;">ImageMagick</span>. Aber sowohl tesseract als auch ImageMagick müssen für das Linux auf dem NAS selber gebaut / kompiliert werden. Das Linux auf dem NAS eignet sich aber kaum dafür, da es nicht mal apt-get gibt und so die dependencies mühsam manuell installiert werden müssten. === Raspberry Pi 3 === Ein <span style="color:orange;">Raspberry Pi 3</span> mit Raspbian eignet sich hervorragend zum Bauen der erforderlichen Komponenten, weil die Hardware ähnlich ist und die gebauten binaries auf dem NAS lauffähig sind! Man kann hier dieser [https://github.com/tesseract-ocr/tesseract/wiki/Compiling Anleitung] folgen. Im Wesentlichen muss Folgendes passieren: # sudo apt-get update # sudo apt-get install g++ # sudo apt-get install autoconf automake libtool # sudo apt-get install pkg-config # sudo apt-get install libpng-dev # sudo apt-get install libjpeg8-dev # sudo apt-get install libtiff5-dev # sudo apt-get install zlib1g-dev # sudo apt-get install libleptonica-dev # tesseract und ImageMagick sources holen und auf den Raspberry bringen. Im tesseract Verzeichnis: # ./autogen.sh # ./configure --prefix=../tesseract-bin # make # make install Das baut und installiert tesseract in das Verzeichnis <ins>tesseract-bin</ins>, damit wir es gesondert packen und wegholen können. Beim Ausführen auf dem NAS merkt man jedoch, dass dort einige libraries fehlen. Also holen man sich diese noch dazu: * liblept.so.5 * libgomp.so.1 * libc.so.6 * libgif.so.7 * libgomp.so.1 * libjbig.so.0 * libjpeg.so.62 * liblept.so.5 * liblzma.so.5 * libopenjp2.so.7 * libpng16.so.16 * libpthread.so.0 * libstdc++.so.6 * libtiff.so.5 * libwebp.so.6 Jetzt kann man das TAR bauen: <pre>tar -cvf tesseract-bundle.tar *</pre> === ImageMagick === https://imagemagick.org/script/install-source.php ./configure --prefix=/home/pi/ImageMagick/ --with-tiff=yes d14feecce864198a61026d37f8a4fd0c2836327a 2975 2973 2019-11-06T03:05:54Z Satria 1 wikitext text/x-wiki == Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP, MySQL und Javascript. https://www.seeddms.org == SeedDMS auf ZyXEL NAS == Gleich vorweg: Es gehört einiges dazu, SeedDMS auf dem Linux eines ZyXEL NAS laufen zu lassen! Aber der integrierte PHP-fähige Webserver kann dazu verwendet werden, mit SeedDMS ein Dokumentenmanagementsystem aufzusetzen, ohne Cloud und Internet, das - wenn man will - aber trotzdem von überall erreichbar ist. Auch stellt das hier keine Anfängeranleitung dar. Ich setze voraus, dass man mit der Administration des NAS und seinem Netzwerk vertraut ist. === Grundlagen === ==== Web-Publishing mit HTTPS ==== Damit der integrierte Webserver Inhalte von Freigaben als Webinhalte darstellt, müssen wir das <span style="color:orange;">'''Web-Publishing'''</span> aktivieren. Wer dabei eine erhöhte Sicherheit für seine Login-Daten haben möchte, aktiviert außerdem HTTPS. ==== Neue Freigabe mit Webfreigabe ==== Am besten ist es, man erstellt auf dem NAS eine eigene Freigabe, z.B. <span style="color:orange;">'''dms'''</span> und gibt dem Benutzer die nötigen Berechtigungen, mit dem wir hier die Installation vornehmen wollen. Bei dieser Freigabe muss die <span style="color:orange;">'''Webfreigabe'''</span> aktiviert sein ('dms' auf Web veröffentlichen). Damit nun aber nicht jeder den Verzeichnisinhalt dieser Freigabe sehen kann, erstellen wir darin eine Datei <span style="color:orange;">'''.htaccess'''</span> mit dem Inhalt: <pre>Options -Indexes</pre> Jetzt landet man mit einem Browser unter <span style="color:orange;">https://NAS:5001/MyWeb/dms</span>, kann aber nichts sehen, weil noch keine Startseite erstellt wurde. Aus dem Internet ist diese Seite dann über ein <span style="color:orange;">Portforwarding</span> oder über ein <span style="color:orange;">VPN</span> erreichbar. ==== Aktivierter SSH-Zugang ==== Wir kommen nicht umher, einige Dinge direkt auf dem Linux zu erledigen, und brauchen daher einen aktivierten <span style="color:orange;">SSH Zugang</span> zum NAS und einen SSH-Client, wie z.B. PuTTY. === SeedDMS vorbereiten === ==== Herunterladen und entpacken ==== SeedDMS ist frei verfügbar und kann [https://www.seeddms.org/index.php?id=7 hier] heruntergeladen werden. Im Prinzip muss es nur auf die dafür vorgesehene Freigabe (dms) entpackt werden. Am besten geht das, wenn man das .tar auf die Freigabe kopiert, und den Rest in der SSH Shell erledigt, weil dann die links erhalten bleiben, was wichtig ist! Am Ende sollte das Ganze Paket ohne unnötige Unterordner auf der Freigabe liegen, so dass die Ordner wie 'data' und 'www' etc. direkte Unterordner der Freigabe sind. <pre>tar -xvf seeddms-quickstart-5.1.12.tar</pre> zum Entpacken und dann noch wie gewünscht verschieben: <pre>mv seeddms51x/* .</pre> ==== PHP ==== SeedDMS ist der Meinung, es braucht PHP Version <span style="color:orange;">5.6.38</span>, aber auf meinem NAS mit PHP Version <span style="color:orange;">5.5.22</span> läuft es auch, man muss sich nur durch die Installation mogeln ;) Dazu wird folgende Datei verändert: <ins>/inc/inc.ClassSettings.php</ins> <pre>if (version_compare(PHP_VERSION, '5.6.38') < 0) {</pre> austauschen gegen: <pre>if (version_compare(PHP_VERSION, '5.5.22') < 0) {</pre> ==== MySQL ==== Es muss eine <span style="color:orange;">MySQL Datenbank</span> bereitgestellt werden, auf die SeedDMS Zugriff erhält. ==== SeedDMS konfigurieren ==== Vor der Installation muss man die Datei /conf/settings.xml an die Gegebenheiten des NAS anpassen, was absolute Pfade auf dem Dateisystem (/i-data/...) und relative Pfade im Browser (/MyWeb/dms/...) angeht und auch die Benutzerdaten für die Datenbank. Um eine Browserinstallation zu ermöglichen, muss noch die Datei <span style="color:orange;">conf/ENABLE_INSTALL_TOOL</span> angelegt werden, die nach der Installation unbedingt wieder gelöscht werden muss! === SeedDMS installieren === Jetzt kann man SeedDMS über den Browser installieren: <span style="color:orange;"><nowiki>https://NAS:5001/MyWeb/dms/www/install/install.php</nowiki></span> == Tesseract OCR und Ghostscript auf ZyXEL NAS == Damit aus dem schönen Dokumentenmanagementsystem auch etwas richtig schickes wird, sollte man es um eine OCR (Optical Character Recognition) erweitern. Hierzu eignet sich das freie tool <span style="color:orange;">tesseract</span>. Es kann Texte aus Bilddateien herauslesen, die dann von SeedDMS in der Datenbank als Schlüsselbegriffe für die Volltextsuche gespeichert werden. PDFs müssen zuerst in eine Grafik (z.B. TIFF) umgewandelt werden, und können dann mit tesseract gescannt werden. Für die Umwandlung verwende ich <span style="color:orange;">Ghostscript</span>. Aber sowohl tesseract als auch Ghostscript müssen für das Linux auf dem NAS selber gebaut / kompiliert werden. Das Linux auf dem NAS eignet sich aber kaum dafür, da es nicht mal apt-get gibt und so die dependencies mühsam manuell installiert werden müssten. === Raspberry Pi 3 als build machine === Ein <span style="color:orange;">Raspberry Pi 3</span> mit Raspbian eignet sich hervorragend zum Bauen der erforderlichen tools, weil die Hardware ähnlich ist und die gebauten binaries auf dem NAS lauffähig sind! Man kann hier dieser [https://github.com/tesseract-ocr/tesseract/wiki/Compiling Anleitung] folgen. Im Wesentlichen muss Folgendes passieren: # sudo apt-get update # sudo apt-get install g++ # sudo apt-get install autoconf automake libtool # sudo apt-get install pkg-config # sudo apt-get install libpng-dev # sudo apt-get install libjpeg8-dev # sudo apt-get install libtiff5-dev # sudo apt-get install zlib1g-dev # sudo apt-get install libleptonica-dev # tesseract und Ghostscript sources holen und auf den Raspberry bringen. Im <span style="color:orange;">tesseract</span> Verzeichnis: # ./autogen.sh # ./configure --prefix=/i-data/default/dms/tools # make # make install Das baut und installiert tesseract in das Verzeichnis <ins>tools</ins>, damit wir es gesondert packen und wegholen können. Beim Ausführen auf dem NAS merkt man jedoch, dass dort einige libraries fehlen. Also holen man sich diese noch dazu: * liblept.so.5 * libgomp.so.1 * libc.so.6 * libgif.so.7 * libgomp.so.1 * libjbig.so.0 * libjpeg.so.62 * liblept.so.5 * liblzma.so.5 * libopenjp2.so.7 * libpng16.so.16 * libpthread.so.0 * libstdc++.so.6 * libtiff.so.5 * libwebp.so.6 Außerdem braucht man noch [https://github.com/tesseract-ocr/tesseract/wiki/Data-Files#data-files-for-version-400-november-29-2016 Trainingsdateien] für z.B. Deutsch und/oder Englisch, was die Texterkennung verbessert. Diese müssen in .../share/tessdata kopiert werden. Jetzt kann man das tesseract bundle TAR im tools Verzeichnis bauen: <pre>tar -cvf tesseract-bundle.tar *</pre> <span style="color:orange;">Ghostscript</span> wird auf ähnliche Weise gebaut. Es empfiehlt sich, aber das <ins>tools</ins> Verzeichnis vorher zu löschen, um 2 separate Bundles machen zu können. # ./configure --prefix=/i-data/default/dms/tools # make # make install Libraries hinzuzufügen ist hier nicht nötig, tesseract beinhaltet diese bereits. Für ein wirklich unabhängiges Ghostscript müsste man die natürlich wieder zusammensuchen. Jetzt kann man auch das Ghostscript TAR im tools Verzeichnis bauen: <pre>tar -cvf ghostscript.tar *</pre> === Die 2 tools aufs NAS bringen === tesseract und ghostscript werden auf dem NAS nach <ins>/i-data/default/dms/tools</ins> befördert, am besten mit dem TARs, die an Ort und Stelle entpackt werden. Gestartet wird tesseract z.B. so: <pre>/i-data/default/dms/tools/bin/tesseract --tessdata-dir /i-data/default/dms/tools/share/tessdata -l de+eng $1 $2</pre> Analog dazu Ghostscript: <pre>/i-data/default/dms/tools/bin/gs -dBATCH -dNOPAUSE -sDEVICE=tiffgray -r175 -sOutputFile=$2 $1</pre> wobei $1 jeweils die Quell und $2 die Zieldatei beinhalten. === Ein Skript, das alles kann === Richtig gut funktionert hat das Ganze erst mit einem "umfassenden" Skript, das ghostscript und tesseract geschickt ansteuert und den output an das aufrufende SeedDMS weitergibt. Hierbei sollten die eigenen Outputs der tools mit <pre>> /dev/null 2>&1</pre> ausgeblendet werden, da sie das Zurückgegebene stören. Das Resultat soll vielmehr in eine temporäre Textdatei erfolgen, deren Inhalt dann kontrolliert ans DMS übergeben wird. b82fcb9fdcda65ce1823147f472ca31d8fcaa517 Linux 0 13 2974 2948 2019-11-05T01:10:26Z Satria 1 /* Absturz via Shell */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ 0397b3bf7b8039ba409750f2ba6bd381704a71c6 2989 2974 2020-01-11T19:14:32Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ 2a3f1509a864f4e403bd10d3c08f729239c138ba 2990 2989 2020-01-11T20:53:18Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. /etc/network/interfaces solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm bfb95fa41482867383e864a68015ddb2eb7228f8 2991 2990 2020-01-11T21:10:27Z Satria 1 /* WLAN konfigurieren */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm d68943b9363c36b62a49c67b469002dcb4ce5f4b 2992 2991 2020-01-11T21:25:55Z Satria 1 /* WLAN konfigurieren */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm dd74a7a9cd451907e9b56680e5ad9d89fc2a4b1a 2996 2992 2020-01-19T21:33:52Z Satria 1 /* Mounten */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: <pre>//192.168.117.99/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0</pre> == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 42179710f46ca8b97cef495178830394948a9a80 Mozilla Firefox 0 9 2976 2955 2019-11-14T12:41:57Z Satria 1 wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ==Suche in Adresszeile ausschalten== Dass Eingaben in der Adresszeile, die keine gültigen URLs darstellen direkt per google gesucht werden, kann unerwünscht sein, so wie auch das automatische Erweitern von top-level Domains. Abschalten kann man das in der erweiterten Konfiguration mit den Schlüsseln: <pre> browser.fixup.alternate.enabled = false browser.urlbar.oneOffSearches = false keyword.enabled = false </pre> 0fbda0257597a89a91197cac42602b0ac1d907b4 MotionEyeOS 0 2656 2978 2019-12-14T00:22:37Z Satria 1 Die Seite wurde neu angelegt: „== Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Ras…“ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == Motion Detection ein/ausschalten == Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;http://raspi:7999/1/detection/status: Gibt den Status der Bewegungserkennung aus. ;http://raspi:7999/1/detection/start: Aktiviert die Bewegungserkennung. ;http://raspi:7999/1/detection/pause: Pausiert die Bewegungserkennung == Quellen == https://github.com/ccrisan/motioneyeos ea8003c58c635cd99f95251175892f6733fc1289 2979 2978 2019-12-14T00:24:02Z Satria 1 /* Motion Detection ein/ausschalten */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == Motion Detection ein/ausschalten == Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung == Quellen == https://github.com/ccrisan/motioneyeos 233768b065f64fef3e9c5d6f95b0ef212246199c 2980 2979 2019-12-14T00:25:35Z Satria 1 /* Quellen */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == Motion Detection ein/ausschalten == Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI eb4560327e399c9ddef933bf233d79f3e630a003 2981 2980 2019-12-14T00:33:43Z Satria 1 /* Quellen */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == Motion Detection ein/ausschalten == Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI c7b1f00d2d5ccfcf14471a4fbc089ef9a9bd35c1 2982 2981 2019-12-14T17:17:55Z Satria 1 wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI 674b2b002ba1619259854f0ca3fc46044976f9c9 2983 2982 2019-12-16T01:10:37Z Satria 1 /* Konfiguration ohne UI */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI fd1d3696cebbdb1a423a3317f32166c2c2b8fc0d 2984 2983 2019-12-16T01:13:05Z Satria 1 wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == SSH == === Login mit RSA key === Der public key des RSA-Schlüsselpaars muss nach <pre>/data/etc/ssh_authorized_keys</pre> gespeichert werden. == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI 91a232d6e71875adb0c58c46e15805534cbbc1d0 2985 2984 2020-01-10T21:05:45Z Satria 1 wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == SSH == === Login mit RSA key === Der public key des RSA-Schlüsselpaars muss nach <pre>/data/etc/ssh_authorized_keys</pre> gespeichert werden. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == SSL / HTTPS == Um den Server auf HTTPS umzustellen, sind einige manuelle Schritte nötig: # SSL Zertifikat bzw. Schlüsselpaar erzeugen:<br>z.B.: '''ssl_motioneye.key''' und '''ssl_motioneye.pem''' # Schlüsselpaar nach /data/etc kopieren. # /data/etc/motioneye.conf editieren und diese 2 Zeilen anhängen:<br>'''sslcert /data/etc/ssl_motioneye.pem'''<br>'''sslkey /data/etc/ssl_motioneye.key''' # 2 Quelldateien herunterladen:<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> server.py<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> settings.py # settings.py editieren. Am Ende hinzufügen:<br>'''SSLCERT = "/data/etc/ssl_motioneye.pem"'''<br>'''SSLKEY = "/data/etc/ssl_motioneye.key"''' # server.py editieren. Oben zu den import Statements:<br>'''from tornado import httpserver'''<br>Dann die Zeile<br>'''application.listen(settings.PORT, settings.LISTEN)'''<br>ersetzen mit:<br><pre>if os.path.exists(settings.SSLCERT) and os.path.exists(settings.SSLKEY): http_server = httpserver.HTTPServer(application,ssl_options={ "certfile": settings.SSLCERT, "keyfile": settings.SSLKEY, }) http_server.listen(settings.PORT) else: application.listen(settings.PORT, settings.LISTEN)</pre> == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI 7bb5c51f481cc2a05fd71510f0b73c904cf7c113 2986 2985 2020-01-10T21:10:54Z Satria 1 /* SSL / HTTPS */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == SSH == === Login mit RSA key === Der public key des RSA-Schlüsselpaars muss nach <pre>/data/etc/ssh_authorized_keys</pre> gespeichert werden. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == SSL / HTTPS == Um den Server auf HTTPS umzustellen, sind einige manuelle Schritte nötig: # SSL Zertifikat bzw. Schlüsselpaar erzeugen:<br>z.B.: '''ssl_motioneye.key''' und '''ssl_motioneye.pem''' # Schlüsselpaar nach /data/etc kopieren. # /data/etc/motioneye.conf editieren und diese 2 Zeilen anhängen:<br>'''sslcert /data/etc/ssl_motioneye.pem'''<br>'''sslkey /data/etc/ssl_motioneye.key''' # 2 Quelldateien herunterladen:<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> server.py<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> settings.py # settings.py editieren. Am Ende hinzufügen:<br>'''SSLCERT = "/data/etc/ssl_motioneye.pem"'''<br>'''SSLKEY = "/data/etc/ssl_motioneye.key"''' # server.py editieren. Oben zu den import Statements:<br>'''from tornado import httpserver'''<br>Dann die Zeile<br>'''application.listen(settings.PORT, settings.LISTEN)'''<br>ersetzen mit:<br> <code><poem> if os.path.exists(settings.SSLCERT) and os.path.exists(settings.SSLKEY): http_server = httpserver.HTTPServer(application,ssl_options={ "certfile": settings.SSLCERT, "keyfile": settings.SSLKEY, }) http_server.listen(settings.PORT) else: application.listen(settings.PORT, settings.LISTEN) </poem></code> == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI bdba2d1dfef570e2228932715c84e3e7d41bf016 2987 2986 2020-01-10T21:23:30Z Satria 1 /* SSL / HTTPS */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == SSH == === Login mit RSA key === Der public key des RSA-Schlüsselpaars muss nach <pre>/data/etc/ssh_authorized_keys</pre> gespeichert werden. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == SSL / HTTPS == Um den Server auf HTTPS umzustellen, sind einige manuelle Schritte nötig: # SSL Zertifikat bzw. Schlüsselpaar erzeugen:<br>z.B.: '''ssl_motioneye.key''' und '''ssl_motioneye.pem''' # Schlüsselpaar nach /data/etc kopieren. # /data/etc/motioneye.conf editieren und diese 2 Zeilen anhängen:<br>'''sslcert /data/etc/ssl_motioneye.pem'''<br>'''sslkey /data/etc/ssl_motioneye.key''' # 2 Quelldateien herunterladen:<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> server.py<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> settings.py # settings.py editieren. Am Ende hinzufügen:<br>'''SSLCERT = "/data/etc/ssl_motioneye.pem"'''<br>'''SSLKEY = "/data/etc/ssl_motioneye.key"''' # server.py editieren. Oben zu den import Statements:<br>'''from tornado import httpserver'''<br>Dann die Zeile<br>'''application.listen(settings.PORT, settings.LISTEN)'''<br>ersetzen mit:<br> <code><poem> if os.path.exists(settings.SSLCERT) and os.path.exists(settings.SSLKEY): http_server = httpserver.HTTPServer(application,ssl_options={ "certfile": settings.SSLCERT, "keyfile": settings.SSLKEY, }) http_server.listen(settings.PORT) else: application.listen(settings.PORT, settings.LISTEN) </poem></code> == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI b489c15bbd1c9e285e0c6b8f3bee4dc03135f95f 2988 2987 2020-01-10T21:42:51Z Satria 1 /* SSL / HTTPS */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == SSH == === Login mit RSA key === Der public key des RSA-Schlüsselpaars muss nach <pre>/data/etc/ssh_authorized_keys</pre> gespeichert werden. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == SSL / HTTPS == Um den Server auf HTTPS umzustellen, sind einige manuelle Schritte nötig: # SSL Zertifikat bzw. Schlüsselpaar erzeugen:<br>z.B.: '''ssl_motioneye.key''' und '''ssl_motioneye.pem''' # Schlüsselpaar nach /data/etc kopieren. # /data/etc/motioneye.conf editieren und diese 2 Zeilen anhängen:<br>'''sslcert /data/etc/ssl_motioneye.pem'''<br>'''sslkey /data/etc/ssl_motioneye.key''' # 2 Quelldateien herunterladen:<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> server.py<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> settings.py # settings.py editieren. Am Ende hinzufügen:<br>'''SSLCERT = "/data/etc/ssl_motioneye.pem"'''<br>'''SSLKEY = "/data/etc/ssl_motioneye.key"''' # server.py editieren. Oben zu den import Statements:<br>'''from tornado import httpserver'''<br>Dann die Zeile<br>'''application.listen(settings.PORT, settings.LISTEN)'''<br>ersetzen mit:<br> <code><poem> if os.path.exists(settings.SSLCERT) and os.path.exists(settings.SSLKEY): http_server = httpserver.HTTPServer(application,ssl_options={ "certfile": settings.SSLCERT, "keyfile": settings.SSLKEY, }) http_server.listen(settings.PORT) else: application.listen(settings.PORT, settings.LISTEN) </poem></code> Ergebnis: Es funktioniert, aber in der motioneye.log finden sich hunderte Fehler, die auch dazu führen, dass der Server sich ständig neu startet. == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI b926ed8274173a81bfb95080fceaaa821ba17b43 2998 2988 2020-01-28T22:42:50Z Satria 1 /* SSL / HTTPS */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == SSH == === Login mit RSA key === Der public key des RSA-Schlüsselpaars muss nach <pre>/data/etc/ssh_authorized_keys</pre> gespeichert werden. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == SSL / HTTPS == Um den Server auf HTTPS umzustellen, sind einige manuelle Schritte nötig: # SSL Zertifikat bzw. Schlüsselpaar erzeugen:<br>z.B.: '''ssl_motioneye.key''' und '''ssl_motioneye.pem''' # Schlüsselpaar nach /data/etc kopieren. # /data/etc/motioneye.conf editieren und diese 2 Zeilen anhängen:<br>'''sslcert /data/etc/ssl_motioneye.pem'''<br>'''sslkey /data/etc/ssl_motioneye.key''' # 2 Quelldateien herunterladen:<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> server.py<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> settings.py # settings.py editieren. Am Ende hinzufügen:<br>'''SSLCERT = "/data/etc/ssl_motioneye.pem"'''<br>'''SSLKEY = "/data/etc/ssl_motioneye.key"''' # server.py editieren. Oben zu den import Statements:<br>'''from tornado import httpserver'''<br>Dann die Zeile<br>'''application.listen(settings.PORT, settings.LISTEN)'''<br>ersetzen mit:<br> <code><poem> if os.path.exists(settings.SSLCERT) and os.path.exists(settings.SSLKEY): http_server = httpserver.HTTPServer(application,ssl_options={ "certfile": settings.SSLCERT, "keyfile": settings.SSLKEY, }) http_server.listen(settings.PORT) else: application.listen(settings.PORT, settings.LISTEN) </poem></code> Ergebnis: Es funktioniert, aber in der motioneye.log finden sich hunderte Fehler, die auch dazu führen, dass der Server sich ständig neu startet. === nginx als reverse proxy === Eine weitaus vielversprechendere Methode ist es, einen einfachen nginx Webserver, konfiguriert als reverse proxy, in das MotionEyeOS Linux zu integrieren. Das Schwierige hier ist, dass dieses Linux nicht mal über apt-get verfügt, das heißt: Handarbeit! Ich habe auf einem Raspbian Stretch per "apt-get install nginx" das Paket installiert und mir alles herausgezogen, was nötig ist, um es auf MotionEyeOS laufen zu lassen, was erstaunlich wenig ist. Die Struktur der benötigten Dateien schaut so aus: <code><poem> /data/etc/userinit.sh (Das ist das Skript, mit dem man nginx (und andere tools) beim booten starten kann) /etc/init.d/S86nginx /etc/nginx/nginx.conf /etc/nginx/* (Unter den übrigen Dateien hier gibt es sicher einige überflüssige, aber sie stören nicht) /usr/lib/libpcre.so.3.13.3 -> /usr/lib/libpcre.so.3 /usr/sbin/nginx /var/lib/nginx/ (Ordner muss nur angelegt werden) /var/log/nginx/ (Ordner muss nur angelegt werden) </poem></code> Die '''/etc/nginx/nginx.conf''' sieht nur so aus: <code><poem> include /data/etc/nginx.conf </poem></code> damit dort die richtige Konfiguration liegen kann. Das erleichtert die Administration, denn /etc ist normalerweise schreibgeschützt gemounted. Die '''/data/etc/userinit.sh''' sieht so aus: <code><poem> /etc/init.d/S86nginx start </poem></code> Wenn jetzt die /data/etc/nginx.conf korrekt ist, hat man beim booten einen https nginx webserver, der alles zu MotionEye weiterleitet :) Das nginx-Paket habe ich hier zum Download. Es fehlt nur die userinit.sh, da die von meinem Paket nicht überschrieben werden soll, falls sie schon existiert. [[Datei:Nginx-for-motioneyeos.7z]] == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI 92977335bc09d39c031a1a7e9fe6dca9ffab311d Angular 0 2657 2994 2020-01-14T15:16:33Z Satria 1 Die Seite wurde neu angelegt: „== UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code>…“ wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString == Eingabe == === Validierungen === {| |- ! component.ts !! template.html |- | <code><poem><nowiki> import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; class { angForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.angForm = formBuilder.group({ email: ['', Validators.required] }) } } </nowiki></poem></code> || <code><poem><nowiki> <input type="text" formControlName="email" [(ngModel)]="useremail"/> <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)"> <div *ngIf="angForm.controls['email'].errors.required"> </div> </div> </nowiki></poem></code> |} 9c98b4c44cd5d668876266e6a554d7baa0157050 2995 2994 2020-01-14T15:22:06Z Satria 1 wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString == Eingabe == === Validierungen === {| |- ! component.ts !! template.html |- | <code><poem><nowiki> import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; class { angForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.angForm = formBuilder.group({ email: ['', Validators.required], special: ['', this.customValidation("DE")] }) } customValidation(loc: string) : ValidatorFn { return (control: AbstractControl) => { if (loc == "DE" && control.value == "Deutsch") return null; else return { wrongCountry: true }; } } } </nowiki></poem></code> || <code><poem><nowiki> <input type="text" formControlName="email" [(ngModel)]="useremail"/> <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)"> <div *ngIf="angForm.controls['email'].errors.required"> Pflichtfeld! </div> </div> <input type="text" formControlName="special" [(ngModel)]="custom"/> <div *ngIf="angForm.controls['special'].invalid && (angForm.controls['special'].dirty || angForm.controls['special'].touched)"> <div *ngIf="angForm.controls['special'].errors.wrongCountry"> Falsches Land! </div> </div> </nowiki></poem></code> |} 3a7415ff6ceef62454eeea8f8d8245cd61e3b491 3000 2995 2020-01-30T09:58:38Z Satria 1 wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString === Pipes mit Parametern === Möchte man ineinem Template einen Wert durch eine Pipe schicken und dabei Parameter mitgeben, werden diese ungewöhnlicherweise mit einem Doppelpunkt eingeleitet und getrennt: <pre>{{status | round: 2[: 4]}}</pre> In eckigen Klammern stehen mögliche weitere Paramter. In der Pipe-Klasse werden diese Parameter in der transform() Methode dann als Array oder einzeln übergeben, je nach dem, wie die Methode deklariert ist: <code> transform(value: any, arg1?: any, arg2?: any) </code> oder <code> transform(value: any, args?: any[]) </code> == Eingabe == === Validierungen === {| |- ! component.ts !! template.html |- | <code><poem><nowiki> import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; class { angForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.angForm = formBuilder.group({ email: ['', Validators.required], special: ['', this.customValidation("DE")] }) } customValidation(loc: string) : ValidatorFn { return (control: AbstractControl) => { if (loc == "DE" && control.value == "Deutsch") return null; else return { wrongCountry: true }; } } } </nowiki></poem></code> || <code><poem><nowiki> <input type="text" formControlName="email" [(ngModel)]="useremail"/> <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)"> <div *ngIf="angForm.controls['email'].errors.required"> Pflichtfeld! </div> </div> <input type="text" formControlName="special" [(ngModel)]="custom"/> <div *ngIf="angForm.controls['special'].invalid && (angForm.controls['special'].dirty || angForm.controls['special'].touched)"> <div *ngIf="angForm.controls['special'].errors.wrongCountry"> Falsches Land! </div> </div> </nowiki></poem></code> |} 040ab1297b89fb745aa87877e92139cab0933f48 3002 3000 2020-02-25T11:42:42Z Satria 1 wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString === Pipes mit Parametern === Möchte man ineinem Template einen Wert durch eine Pipe schicken und dabei Parameter mitgeben, werden diese ungewöhnlicherweise mit einem Doppelpunkt eingeleitet und getrennt: <pre>{{status | round: 2[: 4]}}</pre> In eckigen Klammern stehen mögliche weitere Paramter. In der Pipe-Klasse werden diese Parameter in der transform() Methode dann als Array oder einzeln übergeben, je nach dem, wie die Methode deklariert ist: <code> transform(value: any, arg1?: any, arg2?: any) </code> oder <code> transform(value: any, args?: any[]) </code> == Eingabe == === Validierungen === {| |- ! component.ts !! template.html |- | <code><poem><nowiki> import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; class { angForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.angForm = formBuilder.group({ email: ['', Validators.required], special: ['', this.customValidation("DE")] }) } customValidation(loc: string) : ValidatorFn { return (control: AbstractControl) => { if (loc == "DE" && control.value == "Deutsch") return null; else return { wrongCountry: true }; } } } </nowiki></poem></code> || <code><poem><nowiki> <input type="text" formControlName="email" [(ngModel)]="useremail"/> <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)"> <div *ngIf="angForm.controls['email'].errors.required"> Pflichtfeld! </div> </div> <input type="text" formControlName="special" [(ngModel)]="custom"/> <div *ngIf="angForm.controls['special'].invalid && (angForm.controls['special'].dirty || angForm.controls['special'].touched)"> <div *ngIf="angForm.controls['special'].errors.wrongCountry"> Falsches Land! </div> </div> </nowiki></poem></code> == Observables == === One-time subscription === Für rxJS > 5.5: import { first } from 'rxjs/operators'; observableMethod.pipe(first()).subscribe(method); Es gibt wohl aber Situationen, in denen die Subscription sowieso automatisch beendet wird... |} a99481e8a77c810700c0dacb35dd14df5a12c852 3003 3002 2020-02-25T14:07:05Z Satria 1 wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString === Pipes mit Parametern === Möchte man ineinem Template einen Wert durch eine Pipe schicken und dabei Parameter mitgeben, werden diese ungewöhnlicherweise mit einem Doppelpunkt eingeleitet und getrennt: <pre>{{status | round: 2[: 4]}}</pre> In eckigen Klammern stehen mögliche weitere Paramter. In der Pipe-Klasse werden diese Parameter in der transform() Methode dann als Array oder einzeln übergeben, je nach dem, wie die Methode deklariert ist: <code> transform(value: any, arg1?: any, arg2?: any) </code> oder <code> transform(value: any, args?: any[]) </code> == Eingabe == === Validierungen === {| |- ! component.ts !! template.html |- | <code><poem><nowiki> import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; class { angForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.angForm = formBuilder.group({ email: ['', Validators.required], special: ['', this.customValidation("DE")] }) } customValidation(loc: string) : ValidatorFn { return (control: AbstractControl) => { if (loc == "DE" && control.value == "Deutsch") return null; else return { wrongCountry: true }; } } } </nowiki></poem></code> || <code><poem><nowiki> <input type="text" formControlName="email" [(ngModel)]="useremail"/> <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)"> <div *ngIf="angForm.controls['email'].errors.required"> Pflichtfeld! </div> </div> <input type="text" formControlName="special" [(ngModel)]="custom"/> <div *ngIf="angForm.controls['special'].invalid && (angForm.controls['special'].dirty || angForm.controls['special'].touched)"> <div *ngIf="angForm.controls['special'].errors.wrongCountry"> Falsches Land! </div> </div> </nowiki></poem></code> |} == Observables == === One-time subscription === Für rxJS > 5.5: <code><poem> import { first } from 'rxjs/operators'; observableMethod.pipe(first()).subscribe(method); </poem></code> Es gibt wohl aber Situationen, in denen die Subscription sowieso automatisch beendet wird... === Finalize === Der operator "finalize" wird ausgeführt nachdem das Observable fertig ist, ob mit oder ohne Fehler: <code><poem> import { finalize } from 'rxjs/operators'; asyncMethod.pipe(finalize(() => executThis())); </poem></code> 5dbe82b54147f59bf0926351f849dd6414b1c828 3004 3003 2020-03-06T15:31:18Z Satria 1 wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString === Pipes mit Parametern === Möchte man ineinem Template einen Wert durch eine Pipe schicken und dabei Parameter mitgeben, werden diese ungewöhnlicherweise mit einem Doppelpunkt eingeleitet und getrennt: <pre>{{status | round: 2[: 4]}}</pre> In eckigen Klammern stehen mögliche weitere Paramter. In der Pipe-Klasse werden diese Parameter in der transform() Methode dann als Array oder einzeln übergeben, je nach dem, wie die Methode deklariert ist: <code> transform(value: any, arg1?: any, arg2?: any) </code> oder <code> transform(value: any, args?: any[]) </code> == Eingabe == === Validierungen === {| |- ! component.ts !! template.html |- | <code><poem><nowiki> import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; class { angForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.angForm = formBuilder.group({ email: ['', Validators.required], special: ['', this.customValidation("DE")] }) } customValidation(loc: string) : ValidatorFn { return (control: AbstractControl) => { if (loc == "DE" && control.value == "Deutsch") return null; else return { wrongCountry: true }; } } } </nowiki></poem></code> || <code><poem><nowiki> <input type="text" formControlName="email" [(ngModel)]="useremail"/> <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)"> <div *ngIf="angForm.controls['email'].errors.required"> Pflichtfeld! </div> </div> <input type="text" formControlName="special" [(ngModel)]="custom"/> <div *ngIf="angForm.controls['special'].invalid && (angForm.controls['special'].dirty || angForm.controls['special'].touched)"> <div *ngIf="angForm.controls['special'].errors.wrongCountry"> Falsches Land! </div> </div> </nowiki></poem></code> |} == Observables == === One-time subscription === Für rxJS > 5.5: <code><poem> import { first } from 'rxjs/operators'; observableMethod.pipe(first()).subscribe(method); </poem></code> Es gibt wohl aber Situationen, in denen die Subscription sowieso automatisch beendet wird... === Finalize === Der operator "finalize" wird ausgeführt nachdem das Observable fertig ist, ob mit oder ohne Fehler: <code><poem> import { finalize } from 'rxjs/operators'; asyncMethod.pipe(finalize(() => executThis())); </poem></code> == Migrations == === 5 to 6 === https://update.angular.io/#5.2:6.1l2 Mindestens node 8 muss verwendet werden! Die globale Angular/CLI auf 6 anheben (6.2.9): <pre>npm install -g @angular/cli@6</pre> Den lokalen Workspace auf Angular/CLI 6 anheben: <pre>ng update @angular/cli@6</pre> Skripte in der package.json anpassen: CLI Kommandos beginnen jetzt immer mit einem Doppelstrich: --prod --aot ... Angular framework auf 6 anheben: <pre>ng update @angular/core@6</pre> Die letzte Angular 6 Version war '''6.1.10''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@6.4.7 * rxjs@6.5.4 Die Syntax in rxjs 6 hat sich geändert, und es gibt Migrationstools, die das anpassen: <pre>npm install -g rxjs-tslint</pre> <pre>rxjs-5-to-6-migrate -p src/tsconfig.app.json</pre> Danach kann <code>rxjs-compat</code> aus der package.json entfernt werden. === 6 to 7 === https://update.angular.io/#6.1:7.2l2 Die globale Angular/CLI auf 7 anheben (7.3.9): <pre>npm install -g @angular/cli@7</pre> Den lokalen Workspace auf Angular/CLI 7 anheben: <pre>ng update @angular/cli@7 @angular/core@7</pre> Die letzte Angular 6 Version war '''7.2.16''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@7.3.7 * @angular/cdk@7.3.7 82f56789ea4bb4c6284d00a83ccf98bc20b4c96f 3005 3004 2020-03-20T14:28:58Z Satria 1 /* Finalize */ wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString === Pipes mit Parametern === Möchte man ineinem Template einen Wert durch eine Pipe schicken und dabei Parameter mitgeben, werden diese ungewöhnlicherweise mit einem Doppelpunkt eingeleitet und getrennt: <pre>{{status | round: 2[: 4]}}</pre> In eckigen Klammern stehen mögliche weitere Paramter. In der Pipe-Klasse werden diese Parameter in der transform() Methode dann als Array oder einzeln übergeben, je nach dem, wie die Methode deklariert ist: <code> transform(value: any, arg1?: any, arg2?: any) </code> oder <code> transform(value: any, args?: any[]) </code> == Eingabe == === Validierungen === {| |- ! component.ts !! template.html |- | <code><poem><nowiki> import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms'; class { angForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.angForm = formBuilder.group({ email: ['', Validators.required], special: ['', this.customValidation("DE")] }) } customValidation(loc: string) : ValidatorFn { return (control: AbstractControl) => { if (loc == "DE" && control.value == "Deutsch") return null; else return { wrongCountry: true }; } } } </nowiki></poem></code> || <code><poem><nowiki> <input type="text" formControlName="email" [(ngModel)]="useremail"/> <div *ngIf="angForm.controls['email'].invalid && (angForm.controls['email'].dirty || angForm.controls['email'].touched)"> <div *ngIf="angForm.controls['email'].errors.required"> Pflichtfeld! </div> </div> <input type="text" formControlName="special" [(ngModel)]="custom"/> <div *ngIf="angForm.controls['special'].invalid && (angForm.controls['special'].dirty || angForm.controls['special'].touched)"> <div *ngIf="angForm.controls['special'].errors.wrongCountry"> Falsches Land! </div> </div> </nowiki></poem></code> |} == Observables == === One-time subscription === Für rxJS > 5.5: <code><poem> import { first } from 'rxjs/operators'; observableMethod.pipe(first()).subscribe(method); </poem></code> Es gibt wohl aber Situationen, in denen die Subscription sowieso automatisch beendet wird... === Finalize === Der operator "finalize" wird ausgeführt nachdem das Observable fertig ist, ob mit oder ohne Fehler: <code><poem> import { finalize } from 'rxjs/operators'; asyncMethod.pipe(finalize(() => executeThis())); </poem></code> == Migrations == === 5 to 6 === https://update.angular.io/#5.2:6.1l2 Mindestens node 8 muss verwendet werden! Die globale Angular/CLI auf 6 anheben (6.2.9): <pre>npm install -g @angular/cli@6</pre> Den lokalen Workspace auf Angular/CLI 6 anheben: <pre>ng update @angular/cli@6</pre> Skripte in der package.json anpassen: CLI Kommandos beginnen jetzt immer mit einem Doppelstrich: --prod --aot ... Angular framework auf 6 anheben: <pre>ng update @angular/core@6</pre> Die letzte Angular 6 Version war '''6.1.10''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@6.4.7 * rxjs@6.5.4 Die Syntax in rxjs 6 hat sich geändert, und es gibt Migrationstools, die das anpassen: <pre>npm install -g rxjs-tslint</pre> <pre>rxjs-5-to-6-migrate -p src/tsconfig.app.json</pre> Danach kann <code>rxjs-compat</code> aus der package.json entfernt werden. === 6 to 7 === https://update.angular.io/#6.1:7.2l2 Die globale Angular/CLI auf 7 anheben (7.3.9): <pre>npm install -g @angular/cli@7</pre> Den lokalen Workspace auf Angular/CLI 7 anheben: <pre>ng update @angular/cli@7 @angular/core@7</pre> Die letzte Angular 6 Version war '''7.2.16''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@7.3.7 * @angular/cdk@7.3.7 9aebc8d8c28618ebe5c43e172c333c28fd455c43 3006 3005 2020-03-20T14:59:00Z Satria 1 /* Validierungen */ wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString === Pipes mit Parametern === Möchte man ineinem Template einen Wert durch eine Pipe schicken und dabei Parameter mitgeben, werden diese ungewöhnlicherweise mit einem Doppelpunkt eingeleitet und getrennt: <pre>{{status | round: 2[: 4]}}</pre> In eckigen Klammern stehen mögliche weitere Paramter. In der Pipe-Klasse werden diese Parameter in der transform() Methode dann als Array oder einzeln übergeben, je nach dem, wie die Methode deklariert ist: <code> transform(value: any, arg1?: any, arg2?: any) </code> oder <code> transform(value: any, args?: any[]) </code> == Eingabe == === Template-driven validation with custom validator === {| border="1" ! componentCode.ts !! componentCode.html |- | <code><poem><nowiki> import { FormControl, NG_VALIDATORS, Validator, ValidationErrors } from '@angular/forms'; @Component(...) export class ... { field1String: string; otherString: string; @ViewChild("formName") formName: any; update() { // Man KANN so etwas hier tun: this.formName.controls.field1.updateValueAndValidity(); } } @Directive( selector: '[customValidator]', providers: [{ provide: NG_VALIDATORS, useExisting: CustomValidator, multi: true }] ) export class CustomValidator { @Input('customValidator') param: string; validate(control: FormControl): ValidationErrors { // Eine Auswertung, die param verwendet (oder auch nicht) return { myNamedError: true }; } } </nowiki></poem></code> |valign="top"| <code><poem><nowiki> <form #formName="ngForm" novalidate> <input #field1="ngModel" type="text" name="field1" [(ngModel)]="field1String" required [customValidation]="otherString"/> <div *ngIf="formName.invalid && (formName.dirty || formName.touched)"> <div *ngIf="formName.errors.required"> Pflichtfeld! </div> <div *ngIf="formName.errors.myNamedError"> Speziellere Fehlermeldung! </div> </div> </form> </nowiki></poem></code> |} == Observables == === One-time subscription === Für rxJS > 5.5: <code><poem> import { first } from 'rxjs/operators'; observableMethod.pipe(first()).subscribe(method); </poem></code> Es gibt wohl aber Situationen, in denen die Subscription sowieso automatisch beendet wird... === Finalize === Der operator "finalize" wird ausgeführt nachdem das Observable fertig ist, ob mit oder ohne Fehler: <code><poem> import { finalize } from 'rxjs/operators'; asyncMethod.pipe(finalize(() => executeThis())); </poem></code> == Migrations == === 5 to 6 === https://update.angular.io/#5.2:6.1l2 Mindestens node 8 muss verwendet werden! Die globale Angular/CLI auf 6 anheben (6.2.9): <pre>npm install -g @angular/cli@6</pre> Den lokalen Workspace auf Angular/CLI 6 anheben: <pre>ng update @angular/cli@6</pre> Skripte in der package.json anpassen: CLI Kommandos beginnen jetzt immer mit einem Doppelstrich: --prod --aot ... Angular framework auf 6 anheben: <pre>ng update @angular/core@6</pre> Die letzte Angular 6 Version war '''6.1.10''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@6.4.7 * rxjs@6.5.4 Die Syntax in rxjs 6 hat sich geändert, und es gibt Migrationstools, die das anpassen: <pre>npm install -g rxjs-tslint</pre> <pre>rxjs-5-to-6-migrate -p src/tsconfig.app.json</pre> Danach kann <code>rxjs-compat</code> aus der package.json entfernt werden. === 6 to 7 === https://update.angular.io/#6.1:7.2l2 Die globale Angular/CLI auf 7 anheben (7.3.9): <pre>npm install -g @angular/cli@7</pre> Den lokalen Workspace auf Angular/CLI 7 anheben: <pre>ng update @angular/cli@7 @angular/core@7</pre> Die letzte Angular 6 Version war '''7.2.16''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@7.3.7 * @angular/cdk@7.3.7 e9f0bb9d6bd742e5487603d99c5e70e828c2592f Datei:Nginx-for-motioneyeos.7z 6 2658 2997 2020-01-28T22:42:30Z Satria 1 nginx Paket für MotionEyeOS wikitext text/x-wiki nginx Paket für MotionEyeOS a271503903082a22911946d699d8d1d27146bfd2 2999 2997 2020-01-28T22:43:57Z Satria 1 wikitext text/x-wiki nginx Paket für MotionEyeOS. Das .tar muss nach / entpackt werden. 4403305555094489a3881dd832896c23aab5d7ff Windows 7 & 8 0 758 3001 2827 2020-02-19T16:59:54Z Satria 1 wikitext text/x-wiki Hier gibt's verschiedene Tipps zu Windows 7 zu Dingen, die nicht direkt oder gar nicht in der Oberfläche zu finden sind. == Anmeldebildschirm (Hintergrundbild) == Man kann durch ein paar Handgriffe, das Hintergrundbild, das beim Anmeldebildschirm (Logonscreen) angezeigt wird ändern. Man benötigt dazu Administratorenrechte. 1) Registry<br> Anzulegen ist dieser Wert: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background\OEMBackground = (REG_DWORD) 1</pre> 2) Bild-Dateien Es muss folgender Ordner erstellt werden: <pre>C:\Windows\System32\oobe\info\backgrounds</pre> Hier drin sucht Windows nach einer JPG Datei namens <pre>backgroundDefault.jpg</pre> Diese sollte in der Bildschirmauflösung vorliegen und darf die Größe von 256kB nicht überschreiten. Darüberhinaus werden auch folgende Dateinamen akzeptiert und bei der entsprechenden Bildschirmauflösung gelesen: <pre> background768×1280.jpg background900×1440.jpg background960×1280.jpg background1024×1280.jpg background1280×1024.jpg background1024×768.jpg background1280×960.jpg background1600×1200.jpg background1440×900.jpg background1920×1200.jpg background1280×768.jpg background1360×768.jpg </pre> == Bibliotheken und/oder Faoriten ausblenden == Um die Bibliotheken auszublenden, wird dieser Registry-Schlüssel gelöscht: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}</pre> Um die Favoriten auszublenden, wird dieser Registry-Wert verändert: <pre>HKEY_CLASSES_ROOT\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder\Attributes = (REG_DWORD) a9400100</pre> (noch unbestätigt) == Explorer in bestimmtem Ordner starten lassen == Grundsätzlich kann der Explorer.exe einfach ein Pfad nachgestellt werden, welcher dann beim Start direkt angesprungen wird. Manchmal ist es aber nicht so einfach, denn man möchte, dass sich der Explorer z.B. nicht im tatsächlichen, physikalischen Pfad öffnet, sondern in einem der abstrakten Ordner wie der Bibliothek, den Eigenen Dokumenten oder dem Benutzerordner, der eigentlich auf C:\Users\... liegt, aber auch auf derselben Ebene angezeigt wird, wie die Bibliothek und "Computer" und normalerweise so heißt: "Name, Vorname". Genau diesen Ordner kann man mit einer Explorer-Verknüpfung öffnen, die so lautet: <pre>%windir%\explorer.exe /e,::{59031a47-3f72-44a7-89c5-5595fe6b30ee}</pre> == Kompatibilitätseinstellungen von Anwendungen == [[Datei:Windows-Kompatibilität.png|right|thumb]]Diese Einstellungen rechts werden in der Registry hier abgelegt: <code><poem class="toccolours"> HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers </poem></code> <br clear="all"> == LameACM (MP3) Codec installieren == Der Ort, an dem das entpackte LameACM Paket liegt, sei C:\lame (nur als Beispiel)<br> In einer Administrator DOS Box startet man im Pfad %WINDIR%\SysWOW64 den Befehl: <pre>rundll32 setupapi.dll,InstallHinfSection DefaultInstall 0 C:\lame\LameACM.inf</pre> == MSI verbose logging == Bei Fehlern des MSI (MicroSoft Installer), wie dem Exit Code 1603, der sehr allgemein bedeutet, dass etwas nicht funktioniert hat, kann es hilfreich sein, das verbose logging zu aktivieren. Das geschieht über 2 Registry-Werte: <pre> HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Debug = (REG_DWORD) 7 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\Logging = (REG_SZ) voicewarmupx! </pre> === Quellen === [https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs https://blogs.msdn.microsoft.com/astebner/2005/03/29/help-me-help-you-if-you-have-setup-bugs] == Ruhezustand (de)aktivieren == Es gibt keine Möglichkeit, das über die visuellen Konfigurationstools zu tun. Man muss in einer Eingabeaufforderung / DOS Box, die man als Administrator ausführt folgendes eingeben: <pre> Ruhezustand AUS: powercfg -H off<br> Ruhezustand EIN: powercfg -H on </pre> == Telemetry und GWX Updates == Es gibt Updates für Windows 7 und 8 / 8.1, die die Erfassung von Telemetriedaten unterstützen / einführen / erhöhen, wie auch immer. Ausspioniert werden ist das Stichwort. Auch gibt es Updates, die Einen fast schon dazu nötigen, auf Windows 10 zu upgraden.<br> Beides kann man verhindern, wenn man die folgenden Updates weglässt oder - falls bereits installiert - deinstalliert:<br> * KB2592687 (?) * KB2660075 (?) * KB2726535 (?) * KB2819745 (Windows 10) * KB2952664 (Windows 10) * KB2966583 (Telemetrie) * KB2970228 (?) * KB2976978 (Windows 10) * KB2977759 (Windows 10) * KB2990214 (Windows 10) * KB2994023 (?) * KB3012973 (Windows 10) * KB3021917 (Telemetrie) * KB3022345 (Telemetrie, ersetzt durch KB3068708) * KB3035583 (Windows 10) * KB3044374 (Windows 10) * KB3050265 (Windows 10) * KB3065987 (Telemetrie) * KB3068707 (Telemetrie) * KB3068708 (Telemetrie) * KB3075249 (Telemetrie) * KB3078667 (Telemetrie) * KB3079821 (Windows 10) * KB3080149 (Telemetrie) * KB3081954 (Telemetrie) * KB3083324 (Telemetrie) * KB3083710 (Telemetrie) * KB3102810 (Windows 10) * KB3112343 (Windows 10) Es lohnt sich aber auch, diesen Artikel zu lesen, der die Sache mit der Telemetrie erklärt und etwas entschärft:<br> [http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html http://www.heise.de/newsticker/meldung/Angebliche-Schnueffel-Updates-fuer-Windows-7-und-8-1-2792343.html] === Quellen === [http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/ http://www.wilderssecurity.com/threads/list-of-windows-7-telemetry-updates-to-avoid.379151/] == Text-to-speech (Text-zu-Sprache) == Eine Möglichkeit, kostenlose Stimmen zu Windows hinzuzufügen, bietet [http://espeak.sourceforge.net/ eSpeak]. Bei der Installation gibt man folgende Zeile an:<br> <code><poem class="toccolours"> de de+f2 de+f3 de+f4 de+f5 de+m3 de+m4 de+m5 de+m6 de+m7 </poem></code> de steht hierbei für eine deutsche Stimme und fx und mx für weibliche und männliche Varianten. == Versteckte Geräte im Gerätemanager == Es gibt eine Möglichkeit, sich auch die Geräte im Gerätemanager von Windows anzeigen zu lassen, die man sonst nie zu Gesicht bekommt. Dazu ist es notwendig, 2 Umgebungsvariablen zu setzen: <code> Start->Einstellungen->Systemsteuerung->System. Erweitert->Umgebungsvariablen </code> Hier werden jetzt in der Box "Systemvariablen" folgen neue Einträge gemacht: <code><poem> 1) Name der Variablen: Devmgr_show_details Wert der Variablen: 1 2) Name der Variablen: Devmgr_show_nonpresent_devices Wert der Variablen: 1 </poem></code> Alles mit OK bestätigen. Wenn man nun im Gerätemanager Ansicht->Ausgeblendete Geräte anzeigen aktiviert, sieht man alle eingetragenen Geräte, auch wenn diese grad physikalisch nicht vorhanden sind. So kann man dort einiges aufräuemn, was mit der Zeit z.B. doppelt vorhanden ist oder nie mehr vorhanden sein wird etc... Ist aber wie immer mit Vorsicht zu genießen, und man sollte wissen, was man tut. == Winsxs Ordner == Oft vergrößert sich der Ordner <pre>C:\Windows\winsxs</pre> auf mehrere GB ohne erkennbaren Grund. Installationen, verschiedene Sprachversionen von DLLs, Service Packs - all diese Dinge können Ursache dafür sein. Besonders Sicherungen von SP1 sollen dort viel Speicher belegen. Die "Datenträgerbereinigung" kann helfen, Überflüssiges zu entfernen oder auch der Befehl "DISM" (DOS Box). == ZIP-folders abschalten == ''(Gilt ebenso für Windows VISTA und Server 2008)'' Was in Windows XP noch damit zu lösen war, die Datei "zipfldr.dll" zu deregistrieren, gestaltet sich in Windows 7 etwas schwieriger, da diese DLL nicht mehr registriert ist.<br> Wenn man hier abschalten will, dass ZIP Archive in der Struktur als Ordner dargestellt werden, muss folgende Registry-Zeige löschen: '''Achtung! Registry-Modifizierungen können zu Schäden am Betriebssystem führen, so dass es nicht mehr in der Lage ist zu starten!''' <pre> HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} (für ZIP Dateien) HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} (für CAB Dateien) </pre> Es kann sein, dass man zuvor den Besitz der Schlüssel übernehmen muss, um sich anschließend volle Zugriffsrechte zuzuteilen! Danach allerdings sind ZIP und CAB Dateien dem System unbekannt, und man muss ein Komprimierungsprogramm wie z.B. 7-zip installieren, das dieses Dateien lesen kann. == Windows-Store Apps haben keinen Zugriff auf das Internet == Derzeit sammle ich noch Tipps, die das Problem beheben, das sehr viele Leute haben oder hatten. Ein Befehl, der vielleicht hilft heißt <code>CheckNetIsolation</code> == Quellen == [http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135 http://www.techrepublic.com/blog/window-on-windows/change-and-customize-windows-7s-logon-screen-wallpaper/2135]<br> [http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/ http://www.intowindows.com/how-to-change-windows-7-logon-screen-easily-without-using-hacks-tools/]<br> [http://www.sevenforums.com/tutorials/110919-clsid-key-list-windows-7-a.html Win 7 CLSID key list]<br> [http://www.eightforums.com/tutorials/13591-clsid-key-guid-shortcuts-list-windows-8-a.html Win 8 CLSID key list]<br> [http://www.eightforums.com/tutorials/6050-shell-commands-windows-8-a.html Win 8 Shell Commands list]<br> [http://www.pcwelt.de/tipps/XP-Vista-und-7-So-lassen-Sie-Windows-Deutsch-sprechen-3408394.html So lassen Sie Windows Deutsch sprechen]<br> https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh780593(v=win.10) 497266ab37bbe7cfa712fafecaa6e351d6aaf99f Logitech SetPoint 0 2659 3008 2020-05-02T18:15:46Z Satria 1 Die Seite wurde neu angelegt: „Wenn SetPoint nicht das korrekte Bild der Maus zeigt, sind die Bilder nicht heruntergeladen worden. Tipps sind: USC abschalten, und auch <code>HKEY_LOCAL_MACH…“ wikitext text/x-wiki Wenn SetPoint nicht das korrekte Bild der Maus zeigt, sind die Bilder nicht heruntergeladen worden. Tipps sind: USC abschalten, und auch <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA</code> = 0 zu setzen. Nach einem Neustart SetPoint installieren. == SetPoint bereinigen == Folgende Ordner beinhalten technisch relevante Daten zur Maus und spielen damit eine Rolle für das Tasten-Mapping: <code><poem> C:\Users\Shake\AppData\Roaming\Logitech\SetPoint\user.xml (Hier findet man neben dem Tasten-Mapping auch die Maus-Geräte-ID: Model="XXX") XXX = 0xHHH C:\ProgramData\Logishrd\SetPointP\Devices\PointingDevice (Hier liegen im Unterverzeichnis HHH die Bilder der Maus. S. .xml Datei) C:\ProgramData\Logitech\KHAL\Devices (C:\ProgramData\Logitech löschen!) </poem></code> 85246a26b1b7156d3c1d5bafd9317ca50f07c692 Windows 10 0 2646 3009 2965 2020-05-27T23:11:37Z Satria 1 /* GRUB2 unter Windows installieren */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. "EFI Partition verfügbar machen"). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 01fde9a6bd16d1f1ec96d2f49f2fd208356a2e5a 3012 3009 2020-05-30T01:16:43Z Satria 1 /* Bootmanager und EFI */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivutät an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 2a2d5fb190385e674c54aa8f58a1fcb96a0dfd88 GRUB2 0 2660 3011 2020-05-30T01:16:32Z Satria 1 Die Seite wurde neu angelegt: „== GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gib…“ wikitext text/x-wiki == GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. "EFI Partition verfügbar machen"). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable b6e2a24cddf7a5c28f3aa4c9bd94fcc7d5d346bf 3013 3011 2020-05-30T01:37:15Z Satria 1 wikitext text/x-wiki == GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. "EFI Partition verfügbar machen"). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable == GRUB2 Config == === USB-Stick suchen === Außerhalb der menuentry Blöcke, steht das hier: <pre> insmod search_fs_uuid search --no-floppy --set=usb --fs-uuid 0123-9876 </pre> 0123-9876 ist die Datenträger-Seriennummer, die per chkdsk herausgefunden werden kann. In den menuentry Blöcken ist ($usb) dann verwendbar und stellt den USB-Stick dar. == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/Multiboot_USB_drive 08a5addf8a9f017ef49860ff14a3a26756ce0304 3014 3013 2020-05-30T01:41:09Z Satria 1 /* GRUB2 Config */ wikitext text/x-wiki == GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. "EFI Partition verfügbar machen"). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable == GRUB2 Config == === USB-Stick suchen === Außerhalb der menuentry Blöcke, steht das hier: <pre> insmod search_fs_uuid search --no-floppy --set=usb --fs-uuid 0123-9876 </pre> 0123-9876 ist die Datenträger-Seriennummer, die per chkdsk herausgefunden werden kann. In den menuentry Blöcken ist ($usb) dann verwendbar und stellt den USB-Stick dar. === Win10 PE ISO image booten === Man benötigt [https://ipxe.org/wimboot wimboot] Der menuentry Block soll ungefähr so aussehen: <pre> menuentry 'Windows 10 PE ISO' { set isofile="Win10PE.iso" loopback loop ($usb)$isofile linux16 /EFI/BOOT/grub/wimboot rawbcd initrd16 \ newc:bootmgr:(loop)/BOOTMGR \ newc:bootmgr.exe:(loop)/bootmgr.exe \ newc:bcd:(loop)/Boot/bcd \ newc:segmono_boot.ttf:(loop)/Boot/fonts/segmono_boot.ttf \ newc:segoe_slboot.ttf:(loop)/Boot/fonts/segoe_slboot.ttf \ newc:segoen_slboot.ttf:(loop)/Boot/fonts/segoen_slboot.ttf \ newc:wgl4_boot.ttf:(loop)/Boot/fonts/wgl4_boot.ttf \ newc:boot.sdi:(loop)/Boot/boot.sdi \ newc:boot.wim:(loop)/sources/boot.wim } </pre> == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/Multiboot_USB_drive d771da333129da79007a378a86b60137121aec98 Arduino / Digispark 0 2661 3016 2020-06-09T07:48:24Z Satria 1 Die Seite wurde neu angelegt: „== Code snippets == === Change clock speed === <code><poem> #define CLOCK_SPEED_16MHZ 0 #define CLOCK_SPEED_8MHZ 1 #define CLOCK_SPEED_4MHZ 2 #define CLOCK_SPE…“ wikitext text/x-wiki == Code snippets == === Change clock speed === <code><poem> #define CLOCK_SPEED_16MHZ 0 #define CLOCK_SPEED_8MHZ 1 #define CLOCK_SPEED_4MHZ 2 #define CLOCK_SPEED_2MHZ 3 #define CLOCK_SPEED_1MHZ 4 #define CLOCK_SPEED_500KHZ 5 #define CLOCK_SPEED_250KHZ 6 #define CLOCK_SPEED_125KHZ 7 volatile void setClockSpeed(byte speed) { CLKPR = 0b10000000; // enable clock change CLKPR = speed; } void setup() { setClockSpeed(CLOCK_SPEED_8MHZ); } </poem></code> 08493921f6c0ed10eddc54f3691630b32dc94f19 3017 3016 2020-06-09T08:27:00Z Satria 1 wikitext text/x-wiki == Bootloader updaten == https://frottier.wordpress.com/2017/11/12/kein-frust-mit-digispark-clones/ == Code snippets == === Change clock speed === <code><poem> #define CLOCK_SPEED_16MHZ 0 #define CLOCK_SPEED_8MHZ 1 #define CLOCK_SPEED_4MHZ 2 #define CLOCK_SPEED_2MHZ 3 #define CLOCK_SPEED_1MHZ 4 #define CLOCK_SPEED_500KHZ 5 #define CLOCK_SPEED_250KHZ 6 #define CLOCK_SPEED_125KHZ 7 volatile void setClockSpeed(byte speed) { CLKPR = 0b10000000; // enable clock change CLKPR = speed; } void setup() { setClockSpeed(CLOCK_SPEED_8MHZ); } </poem></code> ad70b0c9b7d24e67d78814acddf066c546dc3785 3019 3017 2020-06-23T15:13:00Z Satria 1 wikitext text/x-wiki == Bootloader updaten == https://frottier.wordpress.com/2017/11/12/kein-frust-mit-digispark-clones/ == Bootloader upload via ISP == Ist der Bootloader eines Digisparks defekt (z.B. durch ein fehlerhaftes Update), kann man mit einem Arduino UNO einen Bootloader auf den ATtiny85 oder ATtiny167 flashen. Benötigte Dinge: * Arduino UNO * avrdude.exe (mit einer config.conf, die einen Eintrag für den ATtiny167 enthält. * Arduino IDE > 1.6.5 * COM Port des Arduino auf 19200 baud. * Ein .hex file des passenden Bootloaders. Vorgehensweise beim DigisparkPro: [[Datei:ArduinoISP_to_DigisparkPro.png|thumb|right]] # Arduino und Digispark verkabeln (s. Bild rechts) # ISP Sketch im IDE laden (Beispiele -> ArduinoISP) # USE_OLD_STYLE_WIRING aktivieren # Sketch auf den Arduino UNO laden. Startet danach automatisch. # avrdude Kommando ausführen (x = COM-Port Nummer): <pre>avrdude -pt167 -carduino -PCOMx -b19200 -Uflash:w:t167_default.hex:i</pre> <br clear=all> Quelle: https://digistump.com/wiki/digispark/tutorials/proisp == Code snippets == === Change clock speed === <code><poem> #define CLOCK_SPEED_16MHZ 0 #define CLOCK_SPEED_8MHZ 1 #define CLOCK_SPEED_4MHZ 2 #define CLOCK_SPEED_2MHZ 3 #define CLOCK_SPEED_1MHZ 4 #define CLOCK_SPEED_500KHZ 5 #define CLOCK_SPEED_250KHZ 6 #define CLOCK_SPEED_125KHZ 7 volatile void setClockSpeed(byte speed) { CLKPR = 0b10000000; // enable clock change CLKPR = speed; } void setup() { setClockSpeed(CLOCK_SPEED_8MHZ); } </poem></code> 1a8318bb31a9c76457bbd2306b39d3a9b0397a83 3020 3019 2020-06-23T15:32:51Z Satria 1 /* Bootloader upload via ISP */ wikitext text/x-wiki == Bootloader updaten == https://frottier.wordpress.com/2017/11/12/kein-frust-mit-digispark-clones/ == Bootloader upload via ISP == Ist der Bootloader eines Digisparks defekt (z.B. durch ein fehlerhaftes Update), kann man mit einem Arduino UNO einen Bootloader auf den ATtiny85 oder ATtiny167 flashen. Benötigte Dinge: * Arduino UNO * avrdude.exe (mit einer config.conf, die einen Eintrag für den ATtiny167 enthält. * Arduino IDE > 1.6.5 * COM Port des Arduino auf 19200 baud. * Ein .hex file des passenden Bootloaders. Vorgehensweise beim DigisparkPro: [[Datei:ArduinoISP_to_DigisparkPro.png|thumb|right]] # Arduino und Digispark verkabeln (s. Bild rechts) # ISP Sketch im IDE laden (Beispiele -> ArduinoISP) # USE_OLD_STYLE_WIRING aktivieren # Sketch auf den Arduino UNO laden. Startet danach automatisch. # avrdude Kommando ausführen (x = COM-Port Nummer): <pre>avrdude -pt167 -carduino -PCOMx -b19200 -Uflash:w:t167_default.hex:i</pre> Der Output sollte in etwa dieser sein: <pre> avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x1e9487 avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "t167_default.hex" avrdude: writing flash (16260 bytes): Writing | ################################################## | 100% 0.26s avrdude: 16260 bytes of flash written avrdude: verifying flash memory against t167_default.hex: avrdude: load data flash data from input file t167_default.hex: avrdude: input file t167_default.hex contains 16260 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.35s avrdude: verifying ... avrdude: 16260 bytes of flash verified avrdude: safemode: Fuses OK (H:FE, E:DD, L:DF) avrdude done. Thank you. </pre> <br clear=all> Quelle: https://digistump.com/wiki/digispark/tutorials/proisp == Code snippets == === Change clock speed === <code><poem> #define CLOCK_SPEED_16MHZ 0 #define CLOCK_SPEED_8MHZ 1 #define CLOCK_SPEED_4MHZ 2 #define CLOCK_SPEED_2MHZ 3 #define CLOCK_SPEED_1MHZ 4 #define CLOCK_SPEED_500KHZ 5 #define CLOCK_SPEED_250KHZ 6 #define CLOCK_SPEED_125KHZ 7 volatile void setClockSpeed(byte speed) { CLKPR = 0b10000000; // enable clock change CLKPR = speed; } void setup() { setClockSpeed(CLOCK_SPEED_8MHZ); } </poem></code> 54dac8f203e45fef7f3c1c040291b7297f942767 3021 3020 2020-06-23T15:54:32Z Satria 1 /* Bootloader upload via ISP */ wikitext text/x-wiki == Bootloader updaten == https://frottier.wordpress.com/2017/11/12/kein-frust-mit-digispark-clones/ == Bootloader upload via ISP == Ist der Bootloader eines Digisparks defekt (z.B. durch ein fehlerhaftes Update), kann man mit einem Arduino UNO einen Bootloader auf den ATtiny85 oder ATtiny167 flashen. Benötigte Dinge: * Arduino UNO * avrdude.exe (mit einer config.conf, die einen Eintrag für den ATtiny167 enthält. * Arduino IDE > 1.6.5 * COM Port des Arduino auf 19200 baud. * Ein .hex file des passenden Bootloaders. Vorgehensweise beim DigisparkPro: [[Datei:ArduinoISP_to_DigisparkPro.png|thumb|right]] # Arduino und Digispark verkabeln (s. Bild rechts)<br>MOSI (11) -> Pin10 (Pro) | P0<br>MISO (12) -> Pin8 (Pro) | P1<br>SCK (13) -> Pin11 (Pro) | P2<br>RST -> RST (Pro) | P5<br>5V -> 5V<br>GND -> GND # ISP Sketch im IDE laden (Beispiele -> ArduinoISP) # USE_OLD_STYLE_WIRING aktivieren # Sketch auf den Arduino UNO laden. Startet danach automatisch. # avrdude Kommando ausführen (x = COM-Port Nummer): <pre>avrdude -pt167 -carduino -PCOMx -b19200 -Uflash:w:t167_default.hex:i</pre> Der Output sollte in etwa dieser sein: <pre> avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x1e9487 avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "t167_default.hex" avrdude: writing flash (16260 bytes): Writing | ################################################## | 100% 0.26s avrdude: 16260 bytes of flash written avrdude: verifying flash memory against t167_default.hex: avrdude: load data flash data from input file t167_default.hex: avrdude: input file t167_default.hex contains 16260 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.35s avrdude: verifying ... avrdude: 16260 bytes of flash verified avrdude: safemode: Fuses OK (H:FE, E:DD, L:DF) avrdude done. Thank you. </pre> <br clear=all> Quelle: https://digistump.com/wiki/digispark/tutorials/proisp == Code snippets == === Change clock speed === <code><poem> #define CLOCK_SPEED_16MHZ 0 #define CLOCK_SPEED_8MHZ 1 #define CLOCK_SPEED_4MHZ 2 #define CLOCK_SPEED_2MHZ 3 #define CLOCK_SPEED_1MHZ 4 #define CLOCK_SPEED_500KHZ 5 #define CLOCK_SPEED_250KHZ 6 #define CLOCK_SPEED_125KHZ 7 volatile void setClockSpeed(byte speed) { CLKPR = 0b10000000; // enable clock change CLKPR = speed; } void setup() { setClockSpeed(CLOCK_SPEED_8MHZ); } </poem></code> 5c1b18ae1ab5b469411633615ed286a5d7d173db 3022 3021 2020-06-23T17:13:14Z Satria 1 /* Bootloader upload via ISP */ wikitext text/x-wiki == Bootloader updaten == https://frottier.wordpress.com/2017/11/12/kein-frust-mit-digispark-clones/ == Bootloader upload via ISP == Ist der Bootloader eines Digisparks defekt (z.B. durch ein fehlerhaftes Update), kann man mit einem Arduino UNO einen Bootloader auf den ATtiny85 oder ATtiny167 flashen. Benötigte Dinge: * Arduino UNO * avrdude.exe (mit einer config.conf, die einen Eintrag für den ATtiny167 enthält. * Arduino IDE > 1.6.5 * COM Port des Arduino auf 19200 baud. * Ein .hex file des passenden Bootloaders. Vorgehensweise beim DigisparkPro: [[Datei:ArduinoISP_to_DigisparkPro.png|thumb|right]] # Arduino und Digispark verkabeln (s. Bild rechts)<br>MOSI (11) -> Pin10 (Pro) | P0<br>MISO (12) -> Pin8 (Pro) | P1<br>SCK (13) -> Pin11 (Pro) | P2<br>RST (10) -> RST (Pro) | P5<br>5V -> 5V<br>GND -> GND # ISP Sketch im IDE laden (Beispiele -> ArduinoISP) # USE_OLD_STYLE_WIRING aktivieren # Sketch auf den Arduino UNO laden. Startet danach automatisch. # avrdude Kommando ausführen (x = COM-Port Nummer): <pre>avrdude -pt167 -carduino -PCOMx -b19200 -Uflash:w:t167_default.hex:i</pre> Der Output sollte in etwa dieser sein: <pre> avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x1e9487 avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "t167_default.hex" avrdude: writing flash (16260 bytes): Writing | ################################################## | 100% 0.26s avrdude: 16260 bytes of flash written avrdude: verifying flash memory against t167_default.hex: avrdude: load data flash data from input file t167_default.hex: avrdude: input file t167_default.hex contains 16260 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.35s avrdude: verifying ... avrdude: 16260 bytes of flash verified avrdude: safemode: Fuses OK (H:FE, E:DD, L:DF) avrdude done. Thank you. </pre> <br clear=all> Quelle: https://digistump.com/wiki/digispark/tutorials/proisp == Code snippets == === Change clock speed === <code><poem> #define CLOCK_SPEED_16MHZ 0 #define CLOCK_SPEED_8MHZ 1 #define CLOCK_SPEED_4MHZ 2 #define CLOCK_SPEED_2MHZ 3 #define CLOCK_SPEED_1MHZ 4 #define CLOCK_SPEED_500KHZ 5 #define CLOCK_SPEED_250KHZ 6 #define CLOCK_SPEED_125KHZ 7 volatile void setClockSpeed(byte speed) { CLKPR = 0b10000000; // enable clock change CLKPR = speed; } void setup() { setClockSpeed(CLOCK_SPEED_8MHZ); } </poem></code> b251c3151b205ba0133c608ebf96c16fab1c5c8d Datei:ArduinoISP to DigisparkPro.png 6 2662 3018 2020-06-23T15:08:37Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Windows 10 0 2646 3023 3012 2020-06-25T14:31:30Z Satria 1 /* Unattended Idle Timer */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivität an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 06f82ea2f209b463565f23f1cd0268c0b9c5d62d 3027 3023 2020-09-15T09:31:44Z Satria 1 wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Treiberupdates verhindern == Normalerweise werden Gerätetreiber zusammen mit den Windows-Updates aktualisiert. Das kann nicht selten zu Problemen führen, denn nicht immer funktioniert der neueste Treiber eines Gerätes am besten mit den übrigen Komponenten im System. Verhindern lässt sich das automatische Treiberupdate so: Gruppenrichtlinien bearbeiten (gpedit.msc) -> Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Windows Update -> "Keine Treiber in Windows-Updates einschließen" -> Aktiviert == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivität an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 807e9573388c525b1177fc5f5b89f8568ccb4c03 3028 3027 2020-09-15T09:34:22Z Satria 1 /* Hintergrund-Apps deaktivieren */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Unnötige Apps entfernen == Im Ordner <code>C:\Program Files\WindowsApps</code> gibt es einen Ordner "Deleted", der große Datenmengen beinhalten kann. Um diese zu entfernen soll sich dieser Befehl eignen: <pre>remove-AppxProvisionedPackage -package [Paketname] -online</pre> == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Treiberupdates verhindern == Normalerweise werden Gerätetreiber zusammen mit den Windows-Updates aktualisiert. Das kann nicht selten zu Problemen führen, denn nicht immer funktioniert der neueste Treiber eines Gerätes am besten mit den übrigen Komponenten im System. Verhindern lässt sich das automatische Treiberupdate so: Gruppenrichtlinien bearbeiten (gpedit.msc) -> Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Windows Update -> "Keine Treiber in Windows-Updates einschließen" -> Aktiviert == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivität an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 5cce1fab987b7c9a18ddf8800ace63ae49996265 3029 3028 2020-09-15T09:34:58Z Satria 1 /* Unnötige Apps entfernen */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Unnötige Apps entfernen == Im Ordner <code>C:\Program Files\WindowsApps</code> gibt es einen Ordner "Deleted", der große Datenmengen beinhalten kann. Um diese zu entfernen soll sich dieser Befehl eignen, einzugeben in einer PowerShell mit hohen Berechtigungen: <pre>remove-AppxProvisionedPackage -package [Paketname] -online</pre> == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Treiberupdates verhindern == Normalerweise werden Gerätetreiber zusammen mit den Windows-Updates aktualisiert. Das kann nicht selten zu Problemen führen, denn nicht immer funktioniert der neueste Treiber eines Gerätes am besten mit den übrigen Komponenten im System. Verhindern lässt sich das automatische Treiberupdate so: Gruppenrichtlinien bearbeiten (gpedit.msc) -> Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Windows Update -> "Keine Treiber in Windows-Updates einschließen" -> Aktiviert == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivität an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 75ef03d53819bb96057bf04062b1e5c5eccfa632 3030 3029 2020-09-22T12:58:40Z Satria 1 /* Treiberupdates verhindern */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Unnötige Apps entfernen == Im Ordner <code>C:\Program Files\WindowsApps</code> gibt es einen Ordner "Deleted", der große Datenmengen beinhalten kann. Um diese zu entfernen soll sich dieser Befehl eignen, einzugeben in einer PowerShell mit hohen Berechtigungen: <pre>remove-AppxProvisionedPackage -package [Paketname] -online</pre> == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Updates verhindern == Das leidige Thema "automatische Updates", und dass man seit Windows 10 nicht wirklich etwas dagegen tun kann. Man kann die Netzwerkverbindung als "getaktete Verbindung" konfigurieren, was einige Updates wohl fernhält, aber manche werden dennoch erzwungen. Weitere Möglichkeiten offenbart das Tool [https://www.softpedia.com/get/Tweak/System-Tweak/Wu10Man.shtml Wu10Mam], das man installieren und einfach bedienen kann. Man kann aber auch daraus lernen und die Einstelungen mit ein paar Handgriffen selber erledigen: === Dienste deaktivieren === # Windows Update # Windows Update Medic # Windows Modules Installer === Gruppenrichtlinien anpassen === <pre>Computerkonfiguration -> Windows-Komponenten -> Windows Update -> Automatische Updates konfigurieren</pre> wird aktiviert, und in den Optionen kann dann das gewünschte Verhalten ausgewählt werden, z.B.: 2 - Vor Download und automatischer Installation benachtichtigen. Oder diese Einstellung wird komplett deaktiviert. === hosts Datei anpassen === Ganz perfide ist, wenn man Windows den Zugriff auf sämtliche Update-Server verbietet. Das geht, in dem man die verantwortlichen URLs in der Datei <pre>C:\Windows\system32\drivers\etc\hosts</pre> mit der IP 0.0.0.0 einträgt. === Treiberupdates verhindern === Normalerweise werden Gerätetreiber zusammen mit den Windows-Updates aktualisiert. Das kann nicht selten zu Problemen führen, denn nicht immer funktioniert der neueste Treiber eines Gerätes am besten mit den übrigen Komponenten im System. Verhindern lässt sich das automatische Treiberupdate so: Gruppenrichtlinien bearbeiten (gpedit.msc) -> Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Windows Update -> "Keine Treiber in Windows-Updates einschließen" -> Aktiviert == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivität an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 8475d65727c149bf828b6bafb221181bd9710386 3054 3030 2021-02-23T19:39:16Z Satria 1 /* Bootmanager und EFI */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Unnötige Apps entfernen == Im Ordner <code>C:\Program Files\WindowsApps</code> gibt es einen Ordner "Deleted", der große Datenmengen beinhalten kann. Um diese zu entfernen soll sich dieser Befehl eignen, einzugeben in einer PowerShell mit hohen Berechtigungen: <pre>remove-AppxProvisionedPackage -package [Paketname] -online</pre> == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Updates verhindern == Das leidige Thema "automatische Updates", und dass man seit Windows 10 nicht wirklich etwas dagegen tun kann. Man kann die Netzwerkverbindung als "getaktete Verbindung" konfigurieren, was einige Updates wohl fernhält, aber manche werden dennoch erzwungen. Weitere Möglichkeiten offenbart das Tool [https://www.softpedia.com/get/Tweak/System-Tweak/Wu10Man.shtml Wu10Mam], das man installieren und einfach bedienen kann. Man kann aber auch daraus lernen und die Einstelungen mit ein paar Handgriffen selber erledigen: === Dienste deaktivieren === # Windows Update # Windows Update Medic # Windows Modules Installer === Gruppenrichtlinien anpassen === <pre>Computerkonfiguration -> Windows-Komponenten -> Windows Update -> Automatische Updates konfigurieren</pre> wird aktiviert, und in den Optionen kann dann das gewünschte Verhalten ausgewählt werden, z.B.: 2 - Vor Download und automatischer Installation benachtichtigen. Oder diese Einstellung wird komplett deaktiviert. === hosts Datei anpassen === Ganz perfide ist, wenn man Windows den Zugriff auf sämtliche Update-Server verbietet. Das geht, in dem man die verantwortlichen URLs in der Datei <pre>C:\Windows\system32\drivers\etc\hosts</pre> mit der IP 0.0.0.0 einträgt. === Treiberupdates verhindern === Normalerweise werden Gerätetreiber zusammen mit den Windows-Updates aktualisiert. Das kann nicht selten zu Problemen führen, denn nicht immer funktioniert der neueste Treiber eines Gerätes am besten mit den übrigen Komponenten im System. Verhindern lässt sich das automatische Treiberupdate so: Gruppenrichtlinien bearbeiten (gpedit.msc) -> Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Windows Update -> "Keine Treiber in Windows-Updates einschließen" -> Aktiviert == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivität an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === Bootmanager unter UEFI installieren === Um Windows unter UEFI booten zu können, braucht es eine EFI-Startpartition, die man mit diesem Kommando füllen kann: bcdboot C:\Windows /s A: /f UEFI unter Annahme, dass A: die EFI-Startpartition sei und in C:\Windows die Windows-Installation ist, die gebootet werden soll. Natürlich wird das bei der Windows-Installation durch das Setup gemacht, aber es kann von Nutzen sein, wenn man z.B. von MBR auf GPT umstellt und dabei auch den Datenträger wechselt. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 5f79292f36404c51a1f480466620b9c670403ad7 3055 3054 2021-02-24T14:39:32Z Satria 1 /* Bootmanager und EFI */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. == Unnötige Apps entfernen == Im Ordner <code>C:\Program Files\WindowsApps</code> gibt es einen Ordner "Deleted", der große Datenmengen beinhalten kann. Um diese zu entfernen soll sich dieser Befehl eignen, einzugeben in einer PowerShell mit hohen Berechtigungen: <pre>remove-AppxProvisionedPackage -package [Paketname] -online</pre> == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Updates verhindern == Das leidige Thema "automatische Updates", und dass man seit Windows 10 nicht wirklich etwas dagegen tun kann. Man kann die Netzwerkverbindung als "getaktete Verbindung" konfigurieren, was einige Updates wohl fernhält, aber manche werden dennoch erzwungen. Weitere Möglichkeiten offenbart das Tool [https://www.softpedia.com/get/Tweak/System-Tweak/Wu10Man.shtml Wu10Mam], das man installieren und einfach bedienen kann. Man kann aber auch daraus lernen und die Einstelungen mit ein paar Handgriffen selber erledigen: === Dienste deaktivieren === # Windows Update # Windows Update Medic # Windows Modules Installer === Gruppenrichtlinien anpassen === <pre>Computerkonfiguration -> Windows-Komponenten -> Windows Update -> Automatische Updates konfigurieren</pre> wird aktiviert, und in den Optionen kann dann das gewünschte Verhalten ausgewählt werden, z.B.: 2 - Vor Download und automatischer Installation benachtichtigen. Oder diese Einstellung wird komplett deaktiviert. === hosts Datei anpassen === Ganz perfide ist, wenn man Windows den Zugriff auf sämtliche Update-Server verbietet. Das geht, in dem man die verantwortlichen URLs in der Datei <pre>C:\Windows\system32\drivers\etc\hosts</pre> mit der IP 0.0.0.0 einträgt. === Treiberupdates verhindern === Normalerweise werden Gerätetreiber zusammen mit den Windows-Updates aktualisiert. Das kann nicht selten zu Problemen führen, denn nicht immer funktioniert der neueste Treiber eines Gerätes am besten mit den übrigen Komponenten im System. Verhindern lässt sich das automatische Treiberupdate so: Gruppenrichtlinien bearbeiten (gpedit.msc) -> Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Windows Update -> "Keine Treiber in Windows-Updates einschließen" -> Aktiviert == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivität an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === Bootmanager unter UEFI installieren === Um Windows unter UEFI booten zu können, braucht es eine EFI-Startpartition, die man mit diesem Kommando füllen kann: bcdboot C:\Windows /s A: /f UEFI unter Annahme, dass A: die EFI-Startpartition sei und in C:\Windows die Windows-Installation ist, die gebootet werden soll. Natürlich wird das bei der Windows-Installation durch das Setup gemacht, aber es kann von Nutzen sein, wenn man z.B. von MBR auf GPT umstellt und dabei auch den Datenträger wechselt. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === EFI-Systempartition === Es hat einen Grund, warum diese Partition unter Windows so heißt, denn sie hat eine ganz bestimmte ID, einen ganz bestimmten Partitionstyp, und das ist wichtig! Zwar funktioniert der EFI-Bootvorgang auch, wenn es sich um eine normale Primäre Partitin mit FAT oder FAT32 handelt, aber Windows hat dann keine korrekte Verbindung zum UEFI System, was sich so äußern kann, dass der Energiesparmodus nicht verfügbar ist, sowie auch der Ruhezustand. Windows schaltet sich einfach nicht ab. Außerdem meldet bcdedit "Der Speicher für die Startkonfigurationsdaten konnte nicht geöffnet werden." ganz einfach weil es keine EFI-Systempartition gibt. Dieses seltene Szenario kann auftreten, wenn man sein System z.B. händisch von einem MBR Datenträger auf einen GPT Datenträger migriert hat und jetzt mit UEFI booten möchte. Die EFI-Systempartition sollte dabei mit dem tool "diskpart" erstellt werden, ungefähr so: DISKPART> CREATE PARTITION EFI wobei es sein kann, dass man hier keinen Einfluss auf Größe und Position nehmen kann. Deshalb ist es auch möglich eine wunschgemäß erzeugte Primäre Partition, die die EFI-Startdateien trägt, nachträglich in eine EFI-Systempartition umzuwandeln: DISKPART> SELECT DISK #A DISKPART> SELECT PARTITION #B DISKPART> SET ID=c12a7328-f81f-11d2-ba4b-00a0c93ec93b wobei #A die Nummer des Datenträgers ist und #B die Nummer der Partition, die umgewandelt werden soll. c12a7328-f81f-11d2-ba4b-00a0c93ec93b ist hierbei die offizielle GUID für eine EFI-Systempartition. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 2423e2fdd0a0df06ad57776d88e2403f6b0879b5 Mozilla Firefox 0 9 3024 2976 2020-08-18T13:18:53Z Satria 1 wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ==Suche in Adresszeile ausschalten== Dass Eingaben in der Adresszeile, die keine gültigen URLs darstellen direkt per google gesucht werden, kann unerwünscht sein, so wie auch das automatische Erweitern von top-level Domains. Abschalten kann man das in der erweiterten Konfiguration mit den Schlüsseln: <pre> browser.fixup.alternate.enabled = false browser.urlbar.oneOffSearches = false keyword.enabled = false </pre> ==uBlock Origin== Die Funktion des temporären Zulassens ausgewählter Domains (grüner Balken in der Blockliste) wurde ab einer bestimmten Version abgeschaltet. Wieder aktivieren lässt sie sich in den Erweiterten Einstellungen von uBlock (Icon neben "Ich bin ein erfahrener Anwender"), indem man "filterAuthorMode" auf "true" setzt. 7adb45e5183507ad693eca692d7d524cb0c6dbfc 3025 3024 2020-08-18T13:20:35Z Satria 1 /* uBlock Origin */ wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ==Suche in Adresszeile ausschalten== Dass Eingaben in der Adresszeile, die keine gültigen URLs darstellen direkt per google gesucht werden, kann unerwünscht sein, so wie auch das automatische Erweitern von top-level Domains. Abschalten kann man das in der erweiterten Konfiguration mit den Schlüsseln: <pre> browser.fixup.alternate.enabled = false browser.urlbar.oneOffSearches = false keyword.enabled = false </pre> ==uBlock Origin== Die Funktion des temporären Zulassens ausgewählter Domains (grüner Balken in der Blockliste) wurde ab einer bestimmten Version abgeschaltet. Wieder aktivieren lässt sie sich in den Erweiterten Einstellungen von uBlock (Icon neben "Ich bin ein erfahrener Anwender"), indem man "filterAuthorMode" auf "true" setzt. https://github.com/gorhill/uBlock/releases/tag/1.28.0 e174e51f680b820d9bd405c6f3a51c167955ed6b 3026 3025 2020-08-18T13:21:56Z Satria 1 /* uBlock Origin */ wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ==Suche in Adresszeile ausschalten== Dass Eingaben in der Adresszeile, die keine gültigen URLs darstellen direkt per google gesucht werden, kann unerwünscht sein, so wie auch das automatische Erweitern von top-level Domains. Abschalten kann man das in der erweiterten Konfiguration mit den Schlüsseln: <pre> browser.fixup.alternate.enabled = false browser.urlbar.oneOffSearches = false keyword.enabled = false </pre> ==uBlock Origin== Die Funktion des temporären Zulassens ausgewählter Domains (grüner Balken in der Blockliste) wurde ab einer bestimmten Version abgeschaltet. Wieder aktivieren lässt sie sich in den Erweiterten Einstellungen von uBlock (Icon neben "Ich bin ein erfahrener Anwender"), indem man "filterAuthorMode" auf "true" setzt. Man kann auch in dem uBlock Popup-Fenster mit der Blockliste 2x Strg. drücken. Das stellt diese Funktion für den Moment wieder her. https://github.com/gorhill/uBlock/releases/tag/1.28.0 7452198d8b011a6521d10ef976ed2c7460ef04e5 3053 3026 2021-02-22T08:46:15Z Satria 1 wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ==Suche in Adresszeile ausschalten== Dass Eingaben in der Adresszeile, die keine gültigen URLs darstellen direkt per google gesucht werden, kann unerwünscht sein, so wie auch das automatische Erweitern von top-level Domains. Abschalten kann man das in der erweiterten Konfiguration mit den Schlüsseln: <pre> browser.fixup.alternate.enabled = false browser.urlbar.oneOffSearches = false keyword.enabled = false </pre> ==uBlock Origin== Die Funktion des temporären Zulassens ausgewählter Domains (grüner Balken in der Blockliste) wurde ab einer bestimmten Version abgeschaltet. Wieder aktivieren lässt sie sich in den Erweiterten Einstellungen von uBlock (Icon neben "Ich bin ein erfahrener Anwender"), indem man "filterAuthorMode" auf "true" setzt. Man kann auch in dem uBlock Popup-Fenster mit der Blockliste 2x Strg. drücken. Das stellt diese Funktion für den Moment wieder her. https://github.com/gorhill/uBlock/releases/tag/1.28.0 ==Update Benachrichtigung verstecken== Spätestens seid Firefox 78 erscheint eine nervige Update-Benachrichtigung als Popup am Burgermenü-Button, alle paar Stunden oder so. Man kann dies verhindern, indem man die Zeitspanne für diese Meldungen sehr hoch setzt. Das geht in der Erweiterten Konfiguration mit dem Wert: app.update.promptWaitTime = 9999999 z.B. 5eff5fa4c9c961b7f44e4bb4fae8fbd764953c6b 3060 3053 2021-08-26T14:13:53Z Satria 1 wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ==Suche in Adresszeile ausschalten== Dass Eingaben in der Adresszeile, die keine gültigen URLs darstellen direkt per google gesucht werden, kann unerwünscht sein, so wie auch das automatische Erweitern von top-level Domains. Abschalten kann man das in der erweiterten Konfiguration mit den Schlüsseln: <pre> browser.fixup.alternate.enabled = false browser.urlbar.oneOffSearches = false keyword.enabled = false </pre> ==uBlock Origin== Die Funktion des temporären Zulassens ausgewählter Domains (grüner Balken in der Blockliste) wurde ab einer bestimmten Version abgeschaltet. Wieder aktivieren lässt sie sich in den Erweiterten Einstellungen von uBlock (Icon neben "Ich bin ein erfahrener Anwender"), indem man "filterAuthorMode" auf "true" setzt. Man kann auch in dem uBlock Popup-Fenster mit der Blockliste 2x Strg. drücken. Das stellt diese Funktion für den Moment wieder her. https://github.com/gorhill/uBlock/releases/tag/1.28.0 ==Update Benachrichtigung verstecken== Spätestens seid Firefox 78 erscheint eine nervige Update-Benachrichtigung als Popup am Burgermenü-Button, alle paar Stunden oder so. Man kann dies verhindern, indem man die Zeitspanne für diese Meldungen sehr hoch setzt. Das geht in der Erweiterten Konfiguration mit dem Wert: app.update.promptWaitTime = 9999999 z.B. ==Das Laden lokaler Scriptdateien wird durch CORS verhindert== In der erweiterten Konfiguration muss '''policy.file_unique_origin''' auf '''false''' gesetzt werden, was aber ein Sicherheitsrisiko darstellt. Mit dieser Einstellung sollte man nur lokale Dateien aufrufen. 04b84d98728c3e2bdcb37a6be4993c8af2b28e3c 3064 3060 2022-02-24T10:40:14Z Satria 1 /* Update Benachrichtigung verstecken */ wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ==Suche in Adresszeile ausschalten== Dass Eingaben in der Adresszeile, die keine gültigen URLs darstellen direkt per google gesucht werden, kann unerwünscht sein, so wie auch das automatische Erweitern von top-level Domains. Abschalten kann man das in der erweiterten Konfiguration mit den Schlüsseln: <pre> browser.fixup.alternate.enabled = false browser.urlbar.oneOffSearches = false keyword.enabled = false </pre> ==uBlock Origin== Die Funktion des temporären Zulassens ausgewählter Domains (grüner Balken in der Blockliste) wurde ab einer bestimmten Version abgeschaltet. Wieder aktivieren lässt sie sich in den Erweiterten Einstellungen von uBlock (Icon neben "Ich bin ein erfahrener Anwender"), indem man "filterAuthorMode" auf "true" setzt. Man kann auch in dem uBlock Popup-Fenster mit der Blockliste 2x Strg. drücken. Das stellt diese Funktion für den Moment wieder her. https://github.com/gorhill/uBlock/releases/tag/1.28.0 ==Update Benachrichtigung verstecken== Spätestens seit Firefox 78 erscheint eine nervige Update-Benachrichtigung als Popup am Burgermenü-Button, alle paar Stunden oder so. Man kann dies verhindern, indem man einen Registry-Wert erstellt, der Updates als "vom Administrator deaktiviert" erscheinen lässt: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Firefox\DisableAppUpdate = dword:00000001</pre> ==Das Laden lokaler Scriptdateien wird durch CORS verhindert== In der erweiterten Konfiguration muss '''policy.file_unique_origin''' auf '''false''' gesetzt werden, was aber ein Sicherheitsrisiko darstellt. Mit dieser Einstellung sollte man nur lokale Dateien aufrufen. 3e6531d5e0cd133add79127a9207ee13e04d6f34 GRUB2 0 2660 3031 3014 2020-11-04T11:55:04Z Satria 1 /* GRUB2 unter Windows installieren */ wikitext text/x-wiki == GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. [[Windows_10#EFI_Partition_verf.C3.BCgbar_machen | EFI Partition verfügbar machen]]). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable == GRUB2 Config == === USB-Stick suchen === Außerhalb der menuentry Blöcke, steht das hier: <pre> insmod search_fs_uuid search --no-floppy --set=usb --fs-uuid 0123-9876 </pre> 0123-9876 ist die Datenträger-Seriennummer, die per chkdsk herausgefunden werden kann. In den menuentry Blöcken ist ($usb) dann verwendbar und stellt den USB-Stick dar. === Win10 PE ISO image booten === Man benötigt [https://ipxe.org/wimboot wimboot] Der menuentry Block soll ungefähr so aussehen: <pre> menuentry 'Windows 10 PE ISO' { set isofile="Win10PE.iso" loopback loop ($usb)$isofile linux16 /EFI/BOOT/grub/wimboot rawbcd initrd16 \ newc:bootmgr:(loop)/BOOTMGR \ newc:bootmgr.exe:(loop)/bootmgr.exe \ newc:bcd:(loop)/Boot/bcd \ newc:segmono_boot.ttf:(loop)/Boot/fonts/segmono_boot.ttf \ newc:segoe_slboot.ttf:(loop)/Boot/fonts/segoe_slboot.ttf \ newc:segoen_slboot.ttf:(loop)/Boot/fonts/segoen_slboot.ttf \ newc:wgl4_boot.ttf:(loop)/Boot/fonts/wgl4_boot.ttf \ newc:boot.sdi:(loop)/Boot/boot.sdi \ newc:boot.wim:(loop)/sources/boot.wim } </pre> == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/Multiboot_USB_drive 877388e39696a3d9c28c17a905d242e5cad4db05 3056 3031 2021-02-24T14:41:22Z Satria 1 /* GRUB2 unter Windows installieren */ wikitext text/x-wiki == GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. [[Windows_10#EFI_Partition_verf.C3.BCgbar_machen | EFI Partition verfügbar machen]]). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --target=x86_64-efi --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können und angenommen wird, es handelt sich um ein x86 64bit System. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable == GRUB2 Config == === USB-Stick suchen === Außerhalb der menuentry Blöcke, steht das hier: <pre> insmod search_fs_uuid search --no-floppy --set=usb --fs-uuid 0123-9876 </pre> 0123-9876 ist die Datenträger-Seriennummer, die per chkdsk herausgefunden werden kann. In den menuentry Blöcken ist ($usb) dann verwendbar und stellt den USB-Stick dar. === Win10 PE ISO image booten === Man benötigt [https://ipxe.org/wimboot wimboot] Der menuentry Block soll ungefähr so aussehen: <pre> menuentry 'Windows 10 PE ISO' { set isofile="Win10PE.iso" loopback loop ($usb)$isofile linux16 /EFI/BOOT/grub/wimboot rawbcd initrd16 \ newc:bootmgr:(loop)/BOOTMGR \ newc:bootmgr.exe:(loop)/bootmgr.exe \ newc:bcd:(loop)/Boot/bcd \ newc:segmono_boot.ttf:(loop)/Boot/fonts/segmono_boot.ttf \ newc:segoe_slboot.ttf:(loop)/Boot/fonts/segoe_slboot.ttf \ newc:segoen_slboot.ttf:(loop)/Boot/fonts/segoen_slboot.ttf \ newc:wgl4_boot.ttf:(loop)/Boot/fonts/wgl4_boot.ttf \ newc:boot.sdi:(loop)/Boot/boot.sdi \ newc:boot.wim:(loop)/sources/boot.wim } </pre> == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/Multiboot_USB_drive c70f20765d3268c2d32ae9c72b0374a5ada58ec6 3057 3056 2021-02-24T14:48:33Z Satria 1 /* GRUB2 Config */ wikitext text/x-wiki == GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. [[Windows_10#EFI_Partition_verf.C3.BCgbar_machen | EFI Partition verfügbar machen]]). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --target=x86_64-efi --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können und angenommen wird, es handelt sich um ein x86 64bit System. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable == GRUB2 Config == === USB-Stick suchen === Außerhalb der menuentry Blöcke, steht das hier: <pre> insmod search_fs_uuid search --no-floppy --set=usb --fs-uuid 0123-9876 </pre> 0123-9876 ist die Datenträger-Seriennummer, die per chkdsk herausgefunden werden kann. In den menuentry Blöcken ist ($usb) dann verwendbar und stellt den USB-Stick dar. === Win10 PE ISO image booten === Man benötigt [https://ipxe.org/wimboot wimboot] Der menuentry Block soll ungefähr so aussehen: <pre> menuentry 'Windows 10 PE ISO' { insmod part_gpt insmod fat set isofile="Win10PE.iso" loopback loop ($usb)$isofile linux16 /EFI/BOOT/grub/wimboot rawbcd initrd16 \ newc:bootmgr:(loop)/BOOTMGR \ newc:bootmgr.exe:(loop)/bootmgr.exe \ newc:bcd:(loop)/Boot/bcd \ newc:segmono_boot.ttf:(loop)/Boot/fonts/segmono_boot.ttf \ newc:segoe_slboot.ttf:(loop)/Boot/fonts/segoe_slboot.ttf \ newc:segoen_slboot.ttf:(loop)/Boot/fonts/segoen_slboot.ttf \ newc:wgl4_boot.ttf:(loop)/Boot/fonts/wgl4_boot.ttf \ newc:boot.sdi:(loop)/Boot/boot.sdi \ newc:boot.wim:(loop)/sources/boot.wim } </pre> === GRUB environment variables === Einige Dinge, wie z.B. timeout und default Startblock können außerhalb der grub.cfg gepflegt werden. In der grub.cfg sollte nur am Anfang stehen: load_env Diese Variablen werden in einem Blockfile neben der grub.cfg gespeichert, welches so erzeugt wird: grub-editenv A:\EFI\BOOT\grub\grubenv create vorausgesetzt, A:\EFI\BOOT\grub\ ist das korrekte Verzeichnis der grub.cfg. Werte setzen geht so: grub-editenv A:\EFI\BOOT\grub\grubenv set timeout=5 grub-editenv A:\EFI\BOOT\grub\grubenv set saved_entry=0 saved_entry definiert hierbei persistent den Standardeintrag, der nach Ablauf des Countdowns automatisch geladen wird. == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/Multiboot_USB_drive bfb661a5d634ff18703e06f9181ce29141b6b03d 3058 3057 2021-02-24T14:51:02Z Satria 1 /* Win10 PE ISO image booten */ wikitext text/x-wiki == GRUB2 unter Windows installieren == Möchte man andere Betriebssysteme neben Windows installieren, bietet sich GRUB2 an, das mit UEFI kompatibel ist. Es gibt also einen GRUB2-Installer, der im UEFI einen weiteren Starteintrag erstellt, mit dem direkt der EFI GRUB2-Loader gestartet wird. # [https://ftp.gnu.org/gnu/grub/ Hier] gibt es GRUB2 for Windows. In beliebiges Verzeichnis entpacken. # Zunächst muss die EFI-Systempartition verfügbar gemacht werden (s. [[Windows_10#EFI_Partition_verf.C3.BCgbar_machen | EFI Partition verfügbar machen]]). Angenommen, sie ist als Laufwerk A: gemounted. # Aus einer Administrator-DOS-Box im GRUB2-Verzeichnis führt man nun aus: <pre>grub2-install --target=x86_64-efi --efi-directory=A: --boot-directory=A:\EFI\BOOT --bootloader-id=NAME</pre> wobei --boot-directory und --bootloader-id frei gewählt werden können und angenommen wird, es handelt sich um ein x86 64bit System. # Wenn alles fehlerfrei gelaufen ist, gibt es jetzt im UEFI einen weiteren Starteintrag für den GRUB2 EFI-Loader, und der Windows-Starteintrag wurde davon nicht berührt. # Im Verzeichnis A:\EFI\BOOT\grub muss jetzt eine grub.cfg erzeugt und mit Inhalt gefüllt werden, damit GRUB2 beim Booten auch ein Menü anzeigen kann. --> https://www.gnu.org/software/grub/manual/grub/grub.html # Das gleiche wird für die Installation auf einem Wechselmedium (USB-Stick) ausgeführt, allerdings mit dem zusätzlichen Parameter --removable == GRUB2 Config == === USB-Stick suchen === Außerhalb der menuentry Blöcke, steht das hier: <pre> insmod search_fs_uuid search --no-floppy --set=usb --fs-uuid 0123-9876 </pre> 0123-9876 ist die Datenträger-Seriennummer, die per chkdsk herausgefunden werden kann. In den menuentry Blöcken ist ($usb) dann verwendbar und stellt den USB-Stick dar. === Win10 PE ISO image booten === Man benötigt [https://ipxe.org/wimboot wimboot] Der menuentry Block soll ungefähr so aussehen: <pre> menuentry 'Windows 10 PE ISO' { insmod part_gpt insmod fat set isofile="Win10PE.iso" search --set=usb --file $isofile loopback loop ($usb)$isofile linux16 /EFI/BOOT/grub/wimboot rawbcd initrd16 \ newc:bootmgr:(loop)/BOOTMGR \ newc:bootmgr.exe:(loop)/bootmgr.exe \ newc:bcd:(loop)/Boot/bcd \ newc:segmono_boot.ttf:(loop)/Boot/fonts/segmono_boot.ttf \ newc:segoe_slboot.ttf:(loop)/Boot/fonts/segoe_slboot.ttf \ newc:segoen_slboot.ttf:(loop)/Boot/fonts/segoen_slboot.ttf \ newc:wgl4_boot.ttf:(loop)/Boot/fonts/wgl4_boot.ttf \ newc:boot.sdi:(loop)/Boot/boot.sdi \ newc:boot.wim:(loop)/sources/boot.wim } </pre> === GRUB environment variables === Einige Dinge, wie z.B. timeout und default Startblock können außerhalb der grub.cfg gepflegt werden. In der grub.cfg sollte nur am Anfang stehen: load_env Diese Variablen werden in einem Blockfile neben der grub.cfg gespeichert, welches so erzeugt wird: grub-editenv A:\EFI\BOOT\grub\grubenv create vorausgesetzt, A:\EFI\BOOT\grub\ ist das korrekte Verzeichnis der grub.cfg. Werte setzen geht so: grub-editenv A:\EFI\BOOT\grub\grubenv set timeout=5 grub-editenv A:\EFI\BOOT\grub\grubenv set saved_entry=0 saved_entry definiert hierbei persistent den Standardeintrag, der nach Ablauf des Countdowns automatisch geladen wird. == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/Multiboot_USB_drive 11dcf4f90c0c3dbc47dd07f462a682bd1d0934ca Hauptseite 0 1 3032 3015 2021-01-20T21:50:07Z Satria 1 /* Themen */ wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 549c000a25c878d1d308847c65f06aa57ec74afe 3037 3032 2021-01-22T11:43:57Z Satria 1 /* Themen */ wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DebugMode Wax]] 2.0e<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 64cf2cf78668b8d57f19b10e5bdce8838e6fa500 3051 3037 2021-02-12T13:24:49Z Satria 1 /* Themen */ wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 138cf04b3cbb727bc1e14a21eba5dec0bdfc1b2c 3062 3051 2022-02-24T10:32:46Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 108f2f1f3eb0e2e60ae6c6dde53305fd75268721 PiVPN 0 2663 3033 2021-01-20T22:09:01Z Satria 1 Die Seite wurde neu angelegt: „Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == Nach dem Sc…“ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so: country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="name" scan_ssid=1 psk="passwort" key_mgmt=WPA-PSK } Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Installtion von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart f3be3ff93420628d1613ff392f68768ee884bcd4 3034 3033 2021-01-20T22:12:12Z Satria 1 wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so: country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="name" scan_ssid=1 psk="passwort" key_mgmt=WPA-PSK } Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart 36f17170c99bc0c38eca5650c44dd97ab5d2f91d 3035 3034 2021-01-20T22:14:57Z Satria 1 /* Vorbereitung */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so: country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="name" scan_ssid=1 psk="passwort" key_mgmt=WPA-PSK } scan_ssid=1 ist entscheidend, wenn der Accespoint die SSID versteckt. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart fd7def47992b75260f10daf60ac5c1e97123c403 3036 3035 2021-01-22T11:32:19Z Satria 1 /* Nachträgliche Anpassungen */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so: country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="name" scan_ssid=1 psk="passwort" key_mgmt=WPA-PSK } scan_ssid=1 ist entscheidend, wenn der Accespoint die SSID versteckt. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart d9100e509a1cd1161a5ffdd6705920b31c3a4197 3038 3036 2021-01-22T11:46:51Z Satria 1 wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart f1af3e630e8fa87b9d291e98546bb34914098429 3041 3038 2021-01-22T12:17:52Z Satria 1 /* Nachträgliche Anpassungen */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Ggf. müssen diese Anpassungen auch in /etc/pivpn/openvpn/setupVars.conf vorgenommen werden. Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart 36815da52d3b00aece0c39dbea4f3387b7f5a13a 3044 3041 2021-01-23T11:34:15Z Satria 1 wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Ggf. müssen diese Anpassungen auch in /etc/pivpn/openvpn/setupVars.conf vorgenommen werden. Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart == FreeDNS == Es bietet sich an, den Raspberry auch gleich das dynamic DNS übernehmen zu lassen, falls man das nicht schon anderweitig betreibt. Ein DNS update client für Raspbian ist ''ddclient'', der sich über apt-get installieren lässt. Stand 22.01.2021 funktioniert die derzeit aktuelle Version 3.8.3 aber nicht (mehr) mit dem Dienst von FreeDNS (freedns.afraig.org). Als Alternative kann ein cronjob eingerichtet werden, der periodisch die ''Direct URL'' des jeweiligen Hostnames aufruft und ihn so auf die neue IP Adresse (von der der Aufruf kommt) aktualisiert. In dieser Direct URL steckt ein Token, das eine Authentifizierung erübrigt. Diese URLs sehen in etwa so aus: <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Wir packen also einen entsprechenden Aufruf in ein beliebiges neues shell-Skript z.B. in /usr/bin/freedns.sh: wget --spider <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Dieses Skript soll z.B. alle 15 Minuten aufgerufen werden. Um einen solchen cronjob anzulegen, ruft man zunächst crontab -e auf. Beim ersten Mal wird man nach dem gewünschen Editor gefragt. vi geht auch, nano ist besser. crontab erzeugt hierbei eine temporäre Datei, die man editiert, die nach dem Speichern wieder ausgelesen wird, woraufhin die entsprechenden cronjobs im System angelegt werden. Also nicht über die temporäre Datei wundern. Ein geeigneter cronjob wäre also: */15 * * * * /usr/bin/freedns.sh Nach dem Speichern und Beenden kann man prüfen, ob der cronjob korrekt angelegt wurde: crontab -l 7d4738de19663a03b24d21c2f0474fac7f9fe61d 3045 3044 2021-01-23T11:36:07Z Satria 1 /* FreeDNS */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Ggf. müssen diese Anpassungen auch in /etc/pivpn/openvpn/setupVars.conf vorgenommen werden. Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart == FreeDNS == Es bietet sich an, den Raspberry auch gleich das dynamic DNS übernehmen zu lassen, falls man das nicht schon anderweitig betreibt. Ein DNS update client für Raspbian ist ''ddclient'', der sich über apt-get installieren lässt. Stand 22.01.2021 funktioniert die derzeit aktuelle Version 3.8.3 aber nicht (mehr) mit dem Dienst von FreeDNS ([[https://freedns.afraid.org freedns.afraid.org]]). Als Alternative kann ein cronjob eingerichtet werden, der periodisch die ''Direct URL'' des jeweiligen Hostnames aufruft und ihn so auf die neue IP Adresse (von der der Aufruf kommt) aktualisiert. In dieser Direct URL steckt ein Token, das eine Authentifizierung erübrigt. Diese URLs sehen in etwa so aus: <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Wir packen also einen entsprechenden Aufruf in ein beliebiges neues shell-Skript z.B. in /usr/bin/freedns.sh: wget --spider <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Dieses Skript soll z.B. alle 15 Minuten aufgerufen werden. Um einen solchen cronjob anzulegen, ruft man zunächst crontab -e auf. Beim ersten Mal wird man nach dem gewünschen Editor gefragt. vi geht auch, nano ist besser. crontab erzeugt hierbei eine temporäre Datei, die man editiert, die nach dem Speichern wieder ausgelesen wird, woraufhin die entsprechenden cronjobs im System angelegt werden. Also nicht über die temporäre Datei wundern. Ein geeigneter cronjob wäre also: */15 * * * * /usr/bin/freedns.sh Nach dem Speichern und Beenden kann man prüfen, ob der cronjob korrekt angelegt wurde: crontab -l e5748d6bf3c8c8002d71fbd67559e52773912463 3046 3045 2021-01-23T11:50:31Z Satria 1 /* FreeDNS */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Ggf. müssen diese Anpassungen auch in /etc/pivpn/openvpn/setupVars.conf vorgenommen werden. Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart == FreeDNS == Es bietet sich an, den Raspberry auch gleich das dynamic DNS übernehmen zu lassen, falls man das nicht schon anderweitig betreibt. Ein DNS update client für Raspbian ist ''ddclient'', der sich über apt-get installieren lässt. Stand 22.01.2021 funktioniert die derzeit aktuelle Version 3.8.3 aber nicht (mehr) mit dem Dienst von FreeDNS ([[https://freedns.afraid.org freedns.afraid.org]]). Als Alternative kann ein cronjob eingerichtet werden, der periodisch die ''Direct URL'' des jeweiligen Hostnames aufruft und ihn so auf die neue IP Adresse (von der der Aufruf kommt) aktualisiert. In dieser Direct URL steckt ein Token, das eine Authentifizierung erübrigt. Diese URLs sehen in etwa so aus: <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Wir packen also einen entsprechenden Aufruf in ein beliebiges neues shell-Skript z.B. in /usr/bin/freedns.sh: wget --no-check-certificate -O - <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> > /var/log/freedns.output.log Dieser Befehl mit seinen Parametern, ignoriert SSL-Zertifikatsfehler und speichert immer das letzte Resultat des Aufrufs in die Datei ''/var/log/freedns.output.log''. Dieses Skript soll z.B. alle 15 Minuten aufgerufen werden. Um einen solchen cronjob anzulegen, ruft man zunächst crontab -e auf. Beim ersten Mal wird man nach dem gewünschen Editor gefragt. vi geht auch, nano ist besser. crontab erzeugt hierbei eine temporäre Datei, die man editiert, die nach dem Speichern wieder ausgelesen wird, woraufhin die entsprechenden cronjobs im System angelegt werden. Also nicht über die temporäre Datei wundern. Ein geeigneter cronjob wäre also: */15 * * * * /usr/bin/freedns.sh Nach dem Speichern und Beenden kann man prüfen, ob der cronjob korrekt angelegt wurde: crontab -l d6ca9aaea26ef5478a042dbc2056996b74a9b62a 3047 3046 2021-01-23T12:15:48Z Satria 1 /* FreeDNS */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Ggf. müssen diese Anpassungen auch in /etc/pivpn/openvpn/setupVars.conf vorgenommen werden. Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart == FreeDNS == Es bietet sich an, den Raspberry auch gleich das dynamic DNS übernehmen zu lassen, falls man das nicht schon anderweitig betreibt. Ein DNS update client für Raspbian ist ''ddclient'', der sich über apt-get installieren lässt. Stand 22.01.2021 funktioniert die derzeit aktuelle Version 3.8.3 aber nicht (mehr) mit dem Dienst von FreeDNS ([[https://freedns.afraid.org freedns.afraid.org]]). Als Alternative kann ein cronjob eingerichtet werden, der periodisch die ''Direct URL'' des jeweiligen Hostnames aufruft und ihn so auf die neue IP Adresse (von der der Aufruf kommt) aktualisiert. In dieser Direct URL steckt ein Token, das eine Authentifizierung erübrigt. Diese URLs sehen in etwa so aus: <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Wir packen also einen entsprechenden Aufruf in ein beliebiges neues shell-Skript z.B. in /usr/bin/freedns.sh: #!/bin/sh wget --no-check-certificate -O - <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> > /var/log/freedns.output.log Dieser Befehl mit seinen Parametern, ignoriert SSL-Zertifikatsfehler und speichert immer das letzte Resultat des Aufrufs in die Datei ''/var/log/freedns.output.log''. Dieses Skript soll z.B. alle 15 Minuten aufgerufen werden. Um einen solchen cronjob anzulegen, ruft man zunächst crontab -e auf. Beim ersten Mal wird man nach dem gewünschen Editor gefragt. vi geht auch, nano ist besser. crontab erzeugt hierbei eine temporäre Datei, die man editiert, die nach dem Speichern wieder ausgelesen wird, woraufhin die entsprechenden cronjobs im System angelegt werden. Also nicht über die temporäre Datei wundern. Ein geeigneter cronjob wäre also: */15 * * * * /usr/bin/freedns.sh Nach dem Speichern und Beenden kann man prüfen, ob der cronjob korrekt angelegt wurde: crontab -l 671949cd2b49051ee85d9765c9296df19916b68c 3048 3047 2021-01-23T12:21:08Z Satria 1 /* FreeDNS */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Ggf. müssen diese Anpassungen auch in /etc/pivpn/openvpn/setupVars.conf vorgenommen werden. Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart == FreeDNS == Es bietet sich an, den Raspberry auch gleich das dynamic DNS übernehmen zu lassen, falls man das nicht schon anderweitig betreibt. Ein DNS update client für Raspbian ist ''ddclient'', der sich über apt-get installieren lässt. Stand 22.01.2021 funktioniert die derzeit aktuelle Version 3.8.3 aber nicht (mehr) mit dem Dienst von FreeDNS ([[https://freedns.afraid.org freedns.afraid.org]]). Als Alternative kann ein cronjob eingerichtet werden, der periodisch die ''Direct URL'' des jeweiligen Hostnames aufruft und ihn so auf die neue IP Adresse (von der der Aufruf kommt) aktualisiert. In dieser Direct URL steckt ein Token, das eine Authentifizierung erübrigt. Diese URLs sehen in etwa so aus: <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Wir packen also einen entsprechenden Aufruf in ein beliebiges neues shell-Skript z.B. in /home/pi/freedns.sh: #!/bin/bash wget --no-check-certificate -O - <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> > /var/log/freedns.output.log Dieser Befehl mit seinen Parametern, ignoriert SSL-Zertifikatsfehler und speichert immer das letzte Resultat des Aufrufs in die Datei ''/var/log/freedns.output.log''. Dieses Skript soll z.B. alle 15 Minuten aufgerufen werden. Um einen solchen cronjob anzulegen, ruft man zunächst crontab -e auf. Beim ersten Mal wird man nach dem gewünschen Editor gefragt. vi geht auch, nano ist besser. crontab erzeugt hierbei eine temporäre Datei, die man editiert, die nach dem Speichern wieder ausgelesen wird, woraufhin die entsprechenden cronjobs im System angelegt werden. Also nicht über die temporäre Datei wundern. Ein geeigneter cronjob wäre also: */15 * * * * /home/pi/freedns.sh Nach dem Speichern und Beenden kann man prüfen, ob der cronjob korrekt angelegt wurde: crontab -l 3ebd125cbfab02807b8aef3d25d6e4fafa12c97f 3049 3048 2021-01-23T14:39:34Z Satria 1 /* FreeDNS */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Ggf. müssen diese Anpassungen auch in /etc/pivpn/openvpn/setupVars.conf vorgenommen werden. Danach muss der PiVPN Dienst neu gestartet werden. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart == FreeDNS == Es bietet sich an, den Raspberry auch gleich das dynamic DNS übernehmen zu lassen, falls man das nicht schon anderweitig betreibt. Ein DNS update client für Raspbian ist ''ddclient'', der sich über apt-get installieren lässt. Stand 22.01.2021 funktioniert die derzeit aktuelle Version 3.8.3 aber nicht (mehr) mit dem Dienst von FreeDNS ([[https://freedns.afraid.org freedns.afraid.org]]). Als Alternative kann ein cronjob eingerichtet werden, der periodisch die ''Direct URL'' des jeweiligen Hostnames aufruft und ihn so auf die neue IP Adresse (von der der Aufruf kommt) aktualisiert. In dieser Direct URL steckt ein Token, das eine Authentifizierung erübrigt. Diese URLs sehen in etwa so aus: <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Wir packen also einen entsprechenden Aufruf in ein beliebiges neues shell-Skript z.B. in /home/pi/freedns.sh: #!/bin/bash wget --no-check-certificate -O - <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> > /tmp/freedns.output.log Dieser Befehl mit seinen Parametern, ignoriert SSL-Zertifikatsfehler und speichert immer das letzte Resultat des Aufrufs in die Datei ''/tmp/freedns.output.log''. Dieses Skript soll z.B. alle 15 Minuten aufgerufen werden. Um einen solchen cronjob anzulegen, ruft man zunächst crontab -e auf. Beim ersten Mal wird man nach dem gewünschen Editor gefragt. vi geht auch, nano ist besser. crontab erzeugt hierbei eine temporäre Datei, die man editiert, die nach dem Speichern wieder ausgelesen wird, woraufhin die entsprechenden cronjobs im System angelegt werden. Also nicht über die temporäre Datei wundern. Ein geeigneter cronjob wäre also: */15 * * * * /home/pi/freedns.sh Nach dem Speichern und Beenden kann man prüfen, ob der cronjob korrekt angelegt wurde: crontab -l a0040338aa7b822d7957002acf4a0aec36b7d3bf 3061 3049 2022-02-09T13:59:44Z Satria 1 /* Nachträgliche Anpassungen */ wikitext text/x-wiki Der vielseitige Raspberry PI 3 kann auch in einen VPN Server verwandelt werden. Basis ist z.B. das Linux OS "Raspbian stretch". == Vorbereitung == s. [[Raspberry PI]] == Installation von PiVPN == PiVPN stellt ein Installationsskript zur Verfügung, das direkt aus dem Internet geladen und ausgeführt werden kann. '''Hier ist grundsätzlich Vorsicht geboten, und man sollte so einem Skript absolut vertrauen!''' curl -L https://install.pivpn.io | bash Von hier an läuft alles automatisch ab, bis zum GUI, mit dem man seine PiVPN Installtion an seine Gegebenheiten anpasst. == Verwendung von PiVPN == === Zugang erstellen === pivpn add === Zugang nutzen === Mit einem SFTP Client (z.B. Filezilla) wird die .ovpn Zugangsdatei auf das Gerät heruntergeladen, das später den Zugang nutzen soll und anschließend in einen OpenVPN Client importiert. Diese befindet sich in /home/pi/ovpns == Nachträgliche Anpassungen == Nachträglich lassen sich Anpassungen an den PiVPN Dienst über die verschiedenen Konfigurationsdateien vornehmen: /etc/openvpn/server.conf (Hauptkonfiguration) /etc/openvpn/easy-rsa/pki/Default.txt (z.B. Ziel-Hostname, der in die .ovpn Dateien geschrieben wird) /etc/iptables/rules.v4 (Netzwerk-Interface, wenn z.B. von Wifi zu LAN gewechselt wird) Ggf. müssen diese Anpassungen auch in /etc/pivpn/openvpn/setupVars.conf vorgenommen werden. Danach muss der PiVPN Dienst neu gestartet werden. === Wenn der Internetzugriff des Clients durch das VPN geleitet wird === Falls Internetzugriffe durch das VPN geroutet werden und deshalb ggf. nicht mehr funktionieren, muss die <code>/etc/openvpn/server.conf</code> angepasst werden: <pre> #push "redirect-gateway def1" push "route 192.168.x.0 255.255.255.0" </pre> wobei x für das Subnet steht, um das es geht. Nur Anfragen an dieses Subnet sollen durch das VPN geschickt werden, nicht alle. === Neustart des PiVPN Dienstes === /etc/init.d/openvpn restart == FreeDNS == Es bietet sich an, den Raspberry auch gleich das dynamic DNS übernehmen zu lassen, falls man das nicht schon anderweitig betreibt. Ein DNS update client für Raspbian ist ''ddclient'', der sich über apt-get installieren lässt. Stand 22.01.2021 funktioniert die derzeit aktuelle Version 3.8.3 aber nicht (mehr) mit dem Dienst von FreeDNS ([[https://freedns.afraid.org freedns.afraid.org]]). Als Alternative kann ein cronjob eingerichtet werden, der periodisch die ''Direct URL'' des jeweiligen Hostnames aufruft und ihn so auf die neue IP Adresse (von der der Aufruf kommt) aktualisiert. In dieser Direct URL steckt ein Token, das eine Authentifizierung erübrigt. Diese URLs sehen in etwa so aus: <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> Wir packen also einen entsprechenden Aufruf in ein beliebiges neues shell-Skript z.B. in /home/pi/freedns.sh: #!/bin/bash wget --no-check-certificate -O - <nowiki>https://freedns.afraid.org/dynamic/update.php?xxxxY0NXUzxxxxJCOFdocThlbkxxxxxkOjE5NTQ5xxxx</nowiki> > /tmp/freedns.output.log Dieser Befehl mit seinen Parametern, ignoriert SSL-Zertifikatsfehler und speichert immer das letzte Resultat des Aufrufs in die Datei ''/tmp/freedns.output.log''. Dieses Skript soll z.B. alle 15 Minuten aufgerufen werden. Um einen solchen cronjob anzulegen, ruft man zunächst crontab -e auf. Beim ersten Mal wird man nach dem gewünschen Editor gefragt. vi geht auch, nano ist besser. crontab erzeugt hierbei eine temporäre Datei, die man editiert, die nach dem Speichern wieder ausgelesen wird, woraufhin die entsprechenden cronjobs im System angelegt werden. Also nicht über die temporäre Datei wundern. Ein geeigneter cronjob wäre also: */15 * * * * /home/pi/freedns.sh Nach dem Speichern und Beenden kann man prüfen, ob der cronjob korrekt angelegt wurde: crontab -l 70455b588c83331813fe59994f82b83d7c6a3c6c Raspberry PI 0 2664 3039 2021-01-22T11:47:19Z Satria 1 Die Seite wurde neu angelegt: „== Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Pa…“ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so: country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="name" scan_ssid=1 psk="passwort" key_mgmt=WPA-PSK } scan_ssid=1 ist entscheidend, wenn der Accespoint die SSID versteckt. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Verschiedene Tricks == === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi 2514554444fc00037c9729b6b0363cb253a3b1b0 3040 3039 2021-01-22T11:58:59Z Satria 1 /* Verschiedene Tricks */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so: country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="name" scan_ssid=1 psk="passwort" key_mgmt=WPA-PSK } scan_ssid=1 ist entscheidend, wenn der Accespoint die SSID versteckt. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi 6725f23b834dc928c78ad4b3b2d74d776632ebca 3042 3040 2021-01-22T19:10:09Z Satria 1 /* Verschiedene Tricks */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so: country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="name" scan_ssid=1 psk="passwort" key_mgmt=WPA-PSK } scan_ssid=1 ist entscheidend, wenn der Accespoint die SSID versteckt. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. 86163586cd967048237634b4fd78c037e63c13db 3043 3042 2021-01-22T19:10:59Z Satria 1 /* Periodische Tasks */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so: country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="name" scan_ssid=1 psk="passwort" key_mgmt=WPA-PSK } scan_ssid=1 ist entscheidend, wenn der Accespoint die SSID versteckt. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. 8ad264d148df994b152c60d3cbadd14948ee197b 3050 3043 2021-01-27T16:04:43Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accespoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. b97af1a823bc244b60ea29eb295601028c20c9ca Linux 0 13 3052 2996 2021-02-12T13:30:08Z Satria 1 /* Mounten */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: <pre>//<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0</pre> == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 94def536454b614d3f0c77427b7d628badbd61f5 MotionEyeOS 0 2656 3059 2998 2021-05-12T00:11:29Z Satria 1 /* nginx als reverse proxy */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild+ und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == SSH == === Login mit RSA key === Der public key des RSA-Schlüsselpaars muss nach <pre>/data/etc/ssh_authorized_keys</pre> gespeichert werden. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == SSL / HTTPS == Um den Server auf HTTPS umzustellen, sind einige manuelle Schritte nötig: # SSL Zertifikat bzw. Schlüsselpaar erzeugen:<br>z.B.: '''ssl_motioneye.key''' und '''ssl_motioneye.pem''' # Schlüsselpaar nach /data/etc kopieren. # /data/etc/motioneye.conf editieren und diese 2 Zeilen anhängen:<br>'''sslcert /data/etc/ssl_motioneye.pem'''<br>'''sslkey /data/etc/ssl_motioneye.key''' # 2 Quelldateien herunterladen:<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> server.py<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> settings.py # settings.py editieren. Am Ende hinzufügen:<br>'''SSLCERT = "/data/etc/ssl_motioneye.pem"'''<br>'''SSLKEY = "/data/etc/ssl_motioneye.key"''' # server.py editieren. Oben zu den import Statements:<br>'''from tornado import httpserver'''<br>Dann die Zeile<br>'''application.listen(settings.PORT, settings.LISTEN)'''<br>ersetzen mit:<br> <code><poem> if os.path.exists(settings.SSLCERT) and os.path.exists(settings.SSLKEY): http_server = httpserver.HTTPServer(application,ssl_options={ "certfile": settings.SSLCERT, "keyfile": settings.SSLKEY, }) http_server.listen(settings.PORT) else: application.listen(settings.PORT, settings.LISTEN) </poem></code> Ergebnis: Es funktioniert, aber in der motioneye.log finden sich hunderte Fehler, die auch dazu führen, dass der Server sich ständig neu startet. === nginx als reverse proxy === Eine weitaus vielversprechendere Methode ist es, einen einfachen nginx Webserver, konfiguriert als reverse proxy, in das MotionEyeOS Linux zu integrieren. Das Schwierige hier ist, dass dieses Linux nicht mal über apt-get verfügt, das heißt: Handarbeit! Ich habe auf einem Raspbian Stretch per "apt-get install nginx" das Paket installiert und mir alles herausgezogen, was nötig ist, um es auf MotionEyeOS laufen zu lassen, was erstaunlich wenig ist. Die Struktur der benötigten Dateien schaut so aus: <code><poem> /data/etc/userinit.sh (Das ist das Skript, mit dem man nginx (und andere tools) beim booten starten kann) /etc/init.d/S86nginx /etc/nginx/nginx.conf /etc/nginx/* (Unter den übrigen Dateien hier gibt es sicher einige überflüssige, aber sie stören nicht) /usr/lib/libpcre.so.3.13.3 -> /usr/lib/libpcre.so.3 /usr/sbin/nginx /var/lib/nginx/ (Ordner muss nur angelegt werden) /var/log/nginx/ (Ordner muss nur angelegt werden) </poem></code> Die '''/etc/nginx/nginx.conf''' sieht nur so aus: <code><poem> include /data/etc/nginx.conf </poem></code> damit dort die richtige Konfiguration liegen kann. Das erleichtert die Administration, denn /etc ist normalerweise schreibgeschützt gemounted. Die '''/data/etc/userinit.sh''' sieht so aus: <code><poem> /etc/init.d/S86nginx start </poem></code> Wenn jetzt die /data/etc/nginx.conf korrekt ist, hat man beim booten einen https nginx webserver, der alles zu MotionEye weiterleitet :) Das nginx-Paket habe ich hier zum Download. Es fehlt nur die userinit.sh, da die von meinem Paket nicht überschrieben werden soll, falls sie schon existiert. [[Datei:Nginx-for-motioneyeos.7z]] Um dieses TAR auf den Raspi zu übertragen, muss man sich an einer SSH Konsole anmelden und das root filesystem beschreibbar remounten: <pre>mount -o remount,rw /</pre> Danach mit einem SFTP Client (z.B. Filezilla) das TAR nach / übertragen und zurück auf der Konsole entpacken: <pre>tar -xvf nginx-for-motioneyeos.tar</pre> == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI 38b0b2f395ca1b9896a98197d9b97934ae2b8f0e Docker 0 2665 3063 2022-02-24T10:37:45Z Satria 1 Die Seite wurde neu angelegt: „ Dieser Artikel dient einem ersten Eindruck in und einem Grundverständnis für Docker. == Was ist Docker? == Kurz und bündig: Docker ist eine Form der Virt…“ wikitext text/x-wiki Dieser Artikel dient einem ersten Eindruck in und einem Grundverständnis für Docker. == Was ist Docker? == Kurz und bündig: Docker ist eine Form der Virtualisierung, bei der aber keine komplette Maschine erzeugt wird (wie z.B: bei VMWare), sondern nur eine Art Sandbox, die direkt Ressourcen vom Hostsystem verwendet. Das ist sehr viel schneller als eine komplette VM zu starten. Docker basiert auf Linux. Bei "Docker for Windows" sieht es daher doch so aus, dass per Hyper-V eine komplette Linux-VM erzeugt wird (automatisch bei der Installation), in der Docker dann läuft. Was beim Umschalten auf Windows-Docker passiert, weiß ich zum derzeitigen Zeitpunkt nicht. Die Auswahl an fertigen images wird hier auch geringer sein als bei den nativen Linux images. Update: Mit der Integration von '''WSL 2''' in Windows 10 / Server 2019 ab build 1903 ist Hyper-V für Docker nicht mehr nötig. Mit WSL 2 gibt es eine native Linuxschicht in Windows, die Docker noch schneller und ressourcenschonender macht. === Und wie muss man sich das vorstellen? === Docker wird zunächst grundsätzlich per CLI bedient. Die binaries für die Bedienung liegen bei Docker for Windows als echte Windows .exe Dateien vor. Über den Befehl <pre>docker pull | build | run | start | stop | kill | rmi | tag | ...</pre> können sog. Images vom docker hub (community driven) heruntergeladen und verwendet, gestartet, gestoppt, getagged, gelöscht und neue Images gebaut werden. Z.B. möchte man ein Docker image mit Java haben, um sein eigenes Java-Tool darin laufen zu lassen. Dann könnte man mit <pre>docker pull openjdk:8u181-jre-slim-stretch</pre> ein Image ziehen, das ein Linux enthält und eine Java runtime. Dieses Image liegt nach dem download lokal im Docker repository und ist zunächst aber nicht aktiv. Welche images heruntergeladen werden können und wie sie heißen (hier openjdk:8u181-jre-slim-stretch), ermittelt man auf [https://hub.docker.com/ https://hub.docker.com/] Ob es selber gestartet werden kann, und was dabei passiert hängt vom image ab. Dieses image würde man eher as Basis-image zum Bau eines eigenen verwenden. Das geht mit dem Befehl <pre>docker build</pre> Dieser Befehl sucht im aktuellen Verzeichnis nach einer Datei <code>dockerfile</code>, die Definitionen enthält, wie das neue image zu bauen ist ([https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/engine/reference/builder/]) Im Wesentlichen gibt man an, von welchem image man ausgehen möchte (FROM), was man hinzufügen möchte (ADD oder COPY) und was beim Start des images ausgeführt werden soll (CMD). <pre>FROM openjdk:8u181-jre-slim-stretch COPY dist/myTool.jar /usr/bin/ CMD java -jar /usr/bin/myTool.jar</pre> Wird das image auf diese Art gebaut, kann man es später mit <pre>docker run <imageName or ID></pre> ausführen. Ein image, das gerade ausgeführt wird, nennt man container, oder vielmehr wird ein container basierend auf dem image erzeugt. Er ist quasi die laufende Instanz des images. Es können prinzipiell beliebig viele container eines images parallel gestartet werden. Welche container gerade laufen oder glaufen sind, sieht man mit <pre>docker ps -a</pre> == Dockerfile == === ADD / COPY === Zwischen ADD und COPY besteht ein feiner Unterschied. Während COPY einfach nur kopiert, würde ADD normale Dateien auch kopieren, aber bekannte Archive (.tar, ...?) stattdessen entpacken. Der zweite Parameter ist der Zielort, der ggf. im selben Schritt erstellt wird. === RUN / CMD === RUN führt Befehle IM image zum build-Zeitpunkt aus. Man kann hier z.B. apt-get tasks unterbringen, um im image Software nachzuinstallieren. CMD führt den nachfolgenden Befehl jedes Mal (im container) aus, wenn ein image gestartet wird. == Volumes == Volumes sind Dateipfade des Hostsystems, die in den container hinein gelinked werden können wie mount points. Somit kann ein Austausch zwischen container und Hostsystem stattfinden. Das geschieht beim Starten des containers: <pre>docker run <image name or ID> --volume \Hostpfad:/Containerpfad</pre> Zu ermitteln, welche volumes in einem container gemounted sind, geht mit diesem Befehl: <pre>docker inspect -f {{ .Mounts }} <ContainerID></pre> == Hardwarewechsel == Eine negative Erfahrung beim Wechsel der Hardware (neuer Laptop, alte SSD): Docker startete nicht mehr. Irgendein Problem mit Hyper-V. Hyper-V ließ sich aber auch nicht deinstallieren, um es dann neuzuinstallieren. Beim Deinstallationsprozess wollte Windows neustarten, meldete dann einen Fehler und meinte, die Änderungen würden rückgängig gemacht - Hyper-V war noch da. Es gab keine Lösung außer einer Neuinstallation. '''Also: Vermutlich sollte man sowohl Docker als auch Hyper-V sauber deinstallieren, dann Platte und BS auf die neue Hardware bringen und dort Hyper-V und Docker wieder installieren.''' == Docker verschieben == '''Diese Beschreibung bezieht sich auf Docker unter WSL 2 (ab Windows 10 1903)''' Möchte man Platz auf Laufwerk C: sparen und Docker verschieben, muss man 2 Dinge tun: #Die 2&nbsp;WSL Distributions, die Docker angelegt hat verschieben. #Das Installationsverzeichnis von Docker verschieben und den Dienst anpassen. === WSL Distributionen verschieben === Ich weiß nicht, ob Windows da etwas mitbringt, aber es gibt ein Tool, das WSL sehr gut managen kann: [https://github.com/DDoSolitary/LxRunOffline LxRunOffline]. Docker legt 2 Distributionen an, die man mit <pre>lxrunoffline l</pre> abfragen kann: docker-desktop<br/> und<br/> docker-desktop-data Informationen, z.B. über Speicherort erhält man mit: <code>lxrunoffline sm -n docker-desktop</code> Verschieben lassen sich beide Distributionen per: <pre> lxrunoffline m -n docker-desktop -d <Zielverzeichnis1> und lxrunoffline m -n docker-desktop-data -d <Zielverzeichnis2> </pre> === Docker-Installationsverzeichnis === Man beendet Docker Desktop und beendet den Docker-Dienst. Dann verschiebt man das gesamte Docker-Verzeichnis (C:\Program&nbsp;Files\Docker) zum gewünschten Ort (<Zielverzeichnis>) und führt dann aus: <pre>sc config com.docker.service binPath="<Zielverzeichnis>\Docker\com.docker.service.exe"</pre> Docker-Dienst und Docker-Desktop starten, und alles sollte jetzt funktionieren. == Docker Installation == Wenn <u>nicht</u> '''Docker Desktop''' verwendet weren soll (ab Version 4 ist diese Software unter gewissen Umständen kostenpflichtig), dann sind ein paar manuelle Schritte nötig, um Docker zu installieren. #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]).<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Linux starten (Kommando <code>ubuntu</code>) #Beim ersten Start soll ein Benutzer erstellt werden. Wir nennen ihn hier exemplarisch ''docker'' mit Passwort ''docker''. #Sicherstellen, dass ''docker'' ein superuser ist: <code>sudo grep -E 'sudo' /etc/group</code> Hierbei sollte so eine Zeile wie ''sudo:x:27:docker'' herauskommen. Wenn nicht, muss das hier ausgeführt werden: <code>usermod -aG sudo docker</code>, wobei docker der Benutzername ist, den wir in Schritt 4 erstellt haben. #System aktualisieren: <code>sudo apt update && sudo apt upgrade</code> #Ein paar Umgebungsvariablen setzen: <code>source /etc/os-release</code> #Dem Docker Repo vertrauen: <code>curl -fsSL [https://download.docker.com/linux/${ID}/gpg https://download.docker.com/linux/${ID}/gpg] | sudo apt-key add -</code> #Repo Info aktualisieren: <code>echo "deb [arch=amd64] [https://download.docker.com/linux/${ID} https://download.docker.com/linux/${ID}] ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list</code> #apt aktualisieren: <code>sudo apt update</code> #Docker installieren: <code>sudo apt install docker-ce docker-ce-cli containerd.io</code> #Den aktuellen User zur Gruppe ''docker'' hinzufügen: <code>sudo usermod -aG docker $USER</code> #Jetzt kann der Docker Deamon gestartet werden: sudo dockerd -H 127.0.0.1<br/> Dabei wird am Ende ein Socket gemeldet, z.B.: ''API listen on 127.0.0.1:2375''<br/> '''Hierfür muss Linux Distro mit Adminrechten gestartet werden!''' #Dieser Socket sollte im Windows Hostsystem in die DOCKER_HOST Variable geschrieben werden. #In Windows wird dann das Docker CLI ([https://github.com/StefanScherer/docker-cli-builder/releases https://github.com/StefanScherer/docker-cli-builder/releases]) heruntergeladen und an beliebiger Stelle platziert.<br/> Integration in den PATH und schon ist <code>docker.exe</code> aufrufbar. #Um das Benutzerpasswort nicht immer eingeben zu müssen, kann den Benutzern der Gruppe ''docker'' das Ausführen von dockerd ohne Passwort erlaubt werden. Dazu wird dieser Befehl aufgerufen: <code>sudo visudo</code> und diese Zeilen ergänzt: <code>%docker ALL=(ALL) NOPASSWD: /usr/bin/dockerd</code> #Ab jetzt kann von Windows aus (z.B. über die Aufgabenplanung) das asynchrone Kommando abgesetzt werden, um den Docker-Deamon im Hintergrund zu starten: <code>wsl sh -c "nohup sudo -b dockerd -H 127.0.0.1 > /mnt/wsl/docker.log"</code> === Manuelle Installation === Wenn man die Linux Distribution nicht über die Ubuntu App aus de Windows Store installieren möchte oder aber einfach nur das Installationsverzeichnis anpassen will, müssen die Schritte 1-4 etwas anders aussehen: #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]). '''Wir benötigen hier nur das GZip Archiv!'''<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Im Ordner ''C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc'' sollte sich jetzt eine Datei ''install.tar.gz'' liegen.<br/> Also führt man den Befehl aus: <code>wsl --import <Name> <Zielverzeichnis> C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc\install.tar.gz</code> #Ist Linux dann installiert, startet man diese Instanz mit <code>wsl -d <Name></code> (ggf. ist <Name> auch der Default, dann genügt: <code>wsl</code> #Man erstellt einen nicht-root Benutzer mit <code>adduser docker</code> Ab hier geht es mit dem obigen Schritt 5 weiter. Außerdem kann man per Regedit jetzt den neuen Benutzer, der die ID 1000 haben sollte, als Default-Benutzer eintragen: ''HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{Instanz-CLSID}\DefaultUid = 1000 (Dezimal)''<br/> Als weitere Registrymodifikation kann man den Schlüssel <code>KernelCommandLine</code> auf ''BOOT_IMAGE=/kernel init=/init'' setzen (wie bei der automatischen Installation), da sonst defaultmäßig ''BOOT_IMAGE=/kernel init=/init ro'' angenommen wird. Was der Unterschied ist, kann ich leider nicht sagen, ich habe diesen einfach erst mal festgestellt. Aufpassen muss man jetzt bei Mounted Volumes ins Windows-Dateisystem. Diese funktionieren unter Docker Desktop mit lokalen Pfadangaben wie <code>-v D:\Ordner1\Ordner2:/tmp</code> jetzt aber muss man <code>-v /mnt/d/Ordner1/Ordner2:/tmp</code> schreiben! == VMWare == Auch wenn Hyper-V nicht installiert sein muss, erfordert WSL2 den Hypervisor, der normalerweise als Startparameter im Bootmanager von Windows aktiviert ist. Möchte man VMWare verwenden, muss dieser deaktiviert werden und Windows neu gestartet werden! <code>bcdedit /set hypervisorlaunchtype off</code> Möchte man wieder WSL2 verwenden, aktiviert man ihn wieder und startet neu: <code>bcdedit /set hypervisorlaunchtype Auto</code> == Quellen == [https://docs.docker.com/reference/ https://docs.docker.com/reference/] [https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive] [https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5 https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5] [https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik] [https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9 https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9] 4ab3001a221158ee83636d63e0fada85bbb8c414 Mozilla Thunderbird 0 10 3065 15 2022-02-24T10:41:47Z Satria 1 wikitext text/x-wiki ==Mail-Ordner Einstellungen== Wer von Version 2.x auf 3.x updated, wird (mindestens) eine Eigenschaft der Mail-Ordner vermissen, die den Speicherplatz betrifft Eigenschaften von Ordner (Posteingang/Junk ...) --> Speicherplatz '''"Alle gelesenen Nachrichten"''' wurde durch '''"Gekennzeichnete Nachrichten immer behalten"''' ersetzt, was aber nicht im geringsten dasselbe bedeutet! Der Ordner behält aber stillschweigend die Einstellung von 2.x, diese ist aber nicht mehr erreichbar, sprich - sie lässt sich weder altivieren noch deaktivieren! Jetzt muss man wissen, dass diese Ordner-Eigenschaften im Verzeichnis des Kontos, normalerweise in C:\Dokumente und Einstellungen\<Benutzer>\Anwendungsdaten\Thunderbird\Profiles\xyz.default\Mail\<Kontoname> in Dateien mit der Endung '''.msf'' gespeichert werden. Diese kann man entweder editieren, was aber genaue Kenntnisse voraussetzt(!) oder einfach löschen, und die Konfiguration dann über Thunderbird für jeden Ordner erneut vornehmen. Beim Löschen sollte Thunderbird nicht gestartet sein. '''Achtung! Die Spalten-Einstellungen sowie Sortierreihenfolge des jeweiligen Ordners gehen beim Löschen der .msf Datei ebenfalls verloren und man muss diese Einstellungen erneut vornehmen!''' ==Updates deaktivieren== Spätestens seit Thunderbird 68 erscheint eine nervige Update-Benachrichtigung als Popup am Burgermenü-Button, alle paar Stunden oder so. Man kann dies verhindern, indem man einen Registry-Wert erstellt, der Updates als "vom Administrator deaktiviert" erscheinen lässt: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Thunderbird\DisableAppUpdate = dword:00000001</pre> Ggf. müssen Schlüssel und der Wert selbst erzeugt werden. a897185b474de1d3198f45067016dd710b14562d Mozilla Firefox 0 9 3066 3064 2022-02-24T10:42:22Z Satria 1 wikitext text/x-wiki ==Erweiterte Konfiguration== Die erweiterte Konfiguration wird mit <pre>about:config</pre> in der Adressleiste aufgerufen und bietet Einstellungen, die nicht über das Interface angeboten werden. ==Fehler in Sicherheitskomponenten== Die Fehlermeldung:<br> "Die Sicherheitskomponenten der Anwendung konnten nicht initialisiert werden", erfordert nicht, wie meist in Foren behauptet die Erstellung eines komplett neuen Profils, wobei sämtliche Einstellungen verloren gingen (Cookie-Berechtigungen, Lesezeichen, Gespeicherte Logins/Formulardaten etc...). Man müsste diese alle gezielt und gesondert sichern. Wird Firefox mit dem Fehler gestartet, kann er keine https (gesicherte) Verbindung mehr herstellen. Ohne erkennbaren Grund, kommt es vor, dass die Datei <pre>cert8.db</pre> korrupt ist. Es genügt meistens, diese Datei gegen eine "intakte" auszutauschen, um Firefox wieder zu reparieren. Es empfiehlt sich also, diese Datei von einem funktionierenden Firefox Profil zu sichern, um im Bedarfsfall eine intakte cert8.db Datei zur Verfügung zu haben. Alternativ kann die Datei auch einfach gelöscht werden. Zumindest Firefox 3.6+ erstellt diese Datei beim Start dann neu. ==Neuer Tab öffnet hinter dem aktuellen== "Link in neuem Tab öffnen" erstellt ein neues Tab, direkt hinter dem aktuellen anstatt am Ender der Reihe?<br> Das lässt sich in der erweiterten Konfiguration abschalten, indem man <pre>browser.tabs.insertRelatedAfterCurrent = false</pre> setzt. ==Aussehen des neuen Tabs== Wem es nicht gefällt, dass beim Öffnen eines neuen Tabs alles Mögliche angezeigt wird, das einen angeblich interessiert, der kann den neuen Tab wie folgt leeren: <pre> browser.newtab.preload = false browser.newtabpage.activity-stream.feeds.newtabinit = false browser.newtabpage.enabled = false </pre> ==Virenscan bei Download abschalten== In der erweiterten Konfiguration muss <pre>browser.download.manager.scanWhenDone = false</pre> gesetzt werden, damit Firefox heruntergeladene Dateien nicht nach Viren untersucht, was recht zeitraubend sein kann und zudem überflüssig, wenn man sowieso über einen Virenscanner verfügt. ==Suche in Adresszeile ausschalten== Dass Eingaben in der Adresszeile, die keine gültigen URLs darstellen direkt per google gesucht werden, kann unerwünscht sein, so wie auch das automatische Erweitern von top-level Domains. Abschalten kann man das in der erweiterten Konfiguration mit den Schlüsseln: <pre> browser.fixup.alternate.enabled = false browser.urlbar.oneOffSearches = false keyword.enabled = false </pre> ==uBlock Origin== Die Funktion des temporären Zulassens ausgewählter Domains (grüner Balken in der Blockliste) wurde ab einer bestimmten Version abgeschaltet. Wieder aktivieren lässt sie sich in den Erweiterten Einstellungen von uBlock (Icon neben "Ich bin ein erfahrener Anwender"), indem man "filterAuthorMode" auf "true" setzt. Man kann auch in dem uBlock Popup-Fenster mit der Blockliste 2x Strg. drücken. Das stellt diese Funktion für den Moment wieder her. https://github.com/gorhill/uBlock/releases/tag/1.28.0 ==Updates deaktivieren== Spätestens seit Firefox 78 erscheint eine nervige Update-Benachrichtigung als Popup am Burgermenü-Button, alle paar Stunden oder so. Man kann dies verhindern, indem man einen Registry-Wert erstellt, der Updates als "vom Administrator deaktiviert" erscheinen lässt: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Firefox\DisableAppUpdate = dword:00000001</pre> Ggf. müssen Schlüssel und der Wert selbst erzeugt werden. ==Das Laden lokaler Scriptdateien wird durch CORS verhindert== In der erweiterten Konfiguration muss '''policy.file_unique_origin''' auf '''false''' gesetzt werden, was aber ein Sicherheitsrisiko darstellt. Mit dieser Einstellung sollte man nur lokale Dateien aufrufen. 86a2cb444d6121e0b64b8d911f675eb61ee17e9c Hauptseite 0 1 3067 3062 2022-03-07T16:53:30Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] c21b9a1d64d1bb3947f4c05b487d0a8837ecc463 3102 3067 2023-01-28T05:44:34Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[KC910 Testmode]]<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 4f391d93d99628337625e22175e1195489cd22f1 3109 3102 2023-04-22T17:02:14Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 76d2a691b7f69c1ea69339844115c8336c7df55c NAS326 0 2666 3068 2022-03-07T16:59:42Z Satria 1 Die Seite wurde neu angelegt: „== Hacks == === Autostart === Um etwas beim Start des NAS auszuführen, hijacken wir das Start-Script von PHPMyAdmin, da ich keinen anderen Weg gefunden habe,…“ wikitext text/x-wiki == Hacks == === Autostart === Um etwas beim Start des NAS auszuführen, hijacken wir das Start-Script von PHPMyAdmin, da ich keinen anderen Weg gefunden habe, ein eigenes Startscript zu erstellen. Es befindet sich in <code>/i-data/xxx/.PKG/PHP-MySQL-phpMyAdmin/etc/init.d</code> und heißt: <code>PHP-MySQL-phpMyAdmin</code> Der Block, der beim Starten ausgeführt wird beginnt bei Zeile 212 und wird eingeleitet durch: <code>elif [ "$1" == "startup" ]; then</code>. Hier können am Ende beliebige Befehle hinzugefügt werden. Diese Datei wird persistiert. 5f9fb0baf7d2899af2286c6344ffe52ef75e2707 3091 3068 2022-07-21T09:56:11Z Satria 1 /* Hacks */ wikitext text/x-wiki == Hacks == === Autostart === Um etwas beim Start des NAS auszuführen, hijacken wir das Start-Script von PHPMyAdmin, da ich keinen anderen Weg gefunden habe, ein eigenes Startscript zu erstellen. Es befindet sich in <code>/i-data/xxx/.PKG/PHP-MySQL-phpMyAdmin/etc/init.d</code> und heißt: <code>PHP-MySQL-phpMyAdmin</code> Der Block, der beim Starten ausgeführt wird beginnt bei Zeile 212 und wird eingeleitet durch: <code>elif [ "$1" == "startup" ]; then</code>. Hier können am Ende beliebige Befehle hinzugefügt werden. Diese Datei wird persistiert. === SSL Zertifikate === Um valide SSL Zertifikate zu hinterlegen, damit die HTTPS / FTPS Kommunikation reibungslos funktioniert, muss man das erzeugte Zertifikat nach /etc/zyxel/cert/'''default.cer''' und den Schlüssel nach /etc/zyxel/cert/key/'''default_key.cer''' auf das NAS kopieren. Achtung! Auf der Weboberfläche führt ab diesem Zeipunkt der Aufruf des Menüpunkts Systemsteuerung -> System -> SSL zu einem 500 Server Error mit einer MessageBox, die nur etwas schwierig wegzubekommen ist. Notfalls die Seite neuladen. 022fad0cfced3af961f291737866bacf8bb2d4fb Mediawiki 0 2622 3069 2792 2022-03-08T00:49:47Z Satria 1 wikitext text/x-wiki == Geschwindigkeit erhöhen == === Aaron Schulz === # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed): <i>Shared memory settings</i><br> $wgMainCacheType = CACHE_ACCEL;<br> $wgMessageCacheType = CACHE_ACCEL;<br> $wgCacheDirectory = '<SOME DIRECTORY>';<br> $wgParserCacheType = CACHE_ACCEL;<br> $wgMemCachedServers = array();<br> $wgUseGzip = true;<br> $wgEnableSidebarCache = true;<br> <i>NO DB HITS!</i><br> $wgDisableCounters = true;<br> $wgMiserMode = true;<br> <i>Text cache</i><br> $wgCompressRevisions = true;<br> $wgRevisionCacheExpiry = 3*24*3600;<br> $wgParserCacheExpireTime = 14*24*3600;<br> # Diffs $wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br> $wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';<br> # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. [http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast] === Some variables === $wgDisableCounters = true; [http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm]<br> $wgCheckSerialized = false; [http://www.gossamer-threads.com/lists/wiki/wikitech/156449] == Starten aus einem Netzwerkpfad == Befindet sich das Basisverzeichnis des Webservers und/oder wikis auf einem Netzwerk, auf das per UNC zugegriffen wird (z.B. \\NAS\Folder1\...), muss eine Datei von mediawiki angepasst werden, da sonst die Pfadbildung fehlerhaft ist: includes\AutoLoader.php:<br> Alter Inhalt:<br> <code><poem class="toccolours"> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' ) { global $IP; $filename = "$IP/$filename"; } </poem></code> Neuer Inhalt:<br> <code><poem class="toccolours"> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' <b>&& substr ($filename, 0, 2) != "\\\\")</b> { global $IP; $filename = "$IP/$filename"; } </poem></code> == Fehler bei Pfadzusammensetzung == Seit Version 1.29 macht Mediawiki etwas falsch beim Zusammensetzen mancher Pfade unter Windows. Z.B. der absolute Pfad für $wgLogo enthält mittendrin ein "..", das dazu führt, dass die Grafik nicht gefunden wird und ein Fehler ausgegeben wird. Abhilfe schafft hier am einfachsten die Angabe eines relativen Pfades, der mit einem Dummyteil beginnt, einem Ordner, der nicht existiert: <code>$wgLogo = "x/resources/assets/mediawiki.png";</code> 0d010f43bd7812e83865d47acb615f1332a3c0d9 3070 3069 2022-03-08T00:57:35Z Satria 1 wikitext text/x-wiki == Geschwindigkeit erhöhen == === Aaron Schulz === # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed): <i>Shared memory settings</i><br> $wgMainCacheType = CACHE_ACCEL;<br> $wgMessageCacheType = CACHE_ACCEL;<br> $wgCacheDirectory = '<SOME DIRECTORY>';<br> $wgParserCacheType = CACHE_ACCEL;<br> $wgMemCachedServers = array();<br> $wgUseGzip = true;<br> $wgEnableSidebarCache = true;<br> <i>NO DB HITS!</i><br> $wgDisableCounters = true;<br> $wgMiserMode = true;<br> <i>Text cache</i><br> $wgCompressRevisions = true;<br> $wgRevisionCacheExpiry = 3*24*3600;<br> $wgParserCacheExpireTime = 14*24*3600;<br> # Diffs $wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br> $wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe';<br> # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. [http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast] === Some variables === $wgDisableCounters = true; [http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm]<br> $wgCheckSerialized = false; [http://www.gossamer-threads.com/lists/wiki/wikitech/156449] == Starten aus einem Netzwerkpfad == Befindet sich das Basisverzeichnis des Webservers und/oder wikis auf einem Netzwerk, auf das per UNC zugegriffen wird (z.B. \\NAS\Folder1\...), muss eine Datei von mediawiki angepasst werden, da sonst die Pfadbildung fehlerhaft ist: includes\AutoLoader.php:<br> Alter Inhalt:<br> <code><poem class="toccolours"> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' ) { global $IP; $filename = "$IP/$filename"; } </poem></code> Neuer Inhalt:<br> <code><poem class="toccolours"> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' <b>&& substr ($filename, 0, 2) != "\\\\")</b> { global $IP; $filename = "$IP/$filename"; } </poem></code> == Fehler bei Pfadzusammensetzung == Seit Version 1.29 macht Mediawiki etwas falsch beim Zusammensetzen mancher Pfade unter Windows. Z.B. der absolute Pfad für $wgLogo enthält mittendrin ein "..", das dazu führt, dass die Grafik nicht gefunden wird und ein Fehler ausgegeben wird. Abhilfe schafft hier am einfachsten die Angabe eines relativen Pfades, der mit einem Dummyteil beginnt, einem Ordner, der nicht existiert: <code><poem> $wgLogo = "x/resources/assets/mediawiki.png"; </poem></code> d92d8080981bd97ed39976dfefcf2514b0406042 3071 3070 2022-03-08T01:02:55Z Satria 1 /* Geschwindigkeit erhöhen */ wikitext text/x-wiki == Geschwindigkeit erhöhen == === Aaron Schulz === # Use [http://www.mediawiki.org/wiki/Manual:Cache cache]. # To [http://www.mediawiki.org/wiki/Manual:LocalSettings.php LocalSettings.php], add (replace paths as needed):<br><i>Shared memory settings</i><br>$wgMainCacheType = CACHE_ACCEL;<br>$wgMessageCacheType = CACHE_ACCEL;<br>$wgCacheDirectory = '<SOME DIRECTORY>';<br>$wgParserCacheType = CACHE_ACCEL;<br>$wgMemCachedServers = array();<br>$wgUseGzip = true;<br>$wgEnableSidebarCache = true;<br><br><i>NO DB HITS!</i><br>$wgDisableCounters = true;<br>$wgMiserMode = true;<br><br><i>Text cache</i><br>$wgCompressRevisions = true;<br>$wgRevisionCacheExpiry = 3*24*3600;<br>$wgParserCacheExpireTime = 14*24*3600; # Diffs<br>$wgDiff = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff.exe';<br>$wgDiff3 = 'C:/Server/xampp/htdocs/MW/bin/GnuWin32/bin/diff3.exe'; # '''Set [http://www.mediawiki.org/wiki/Manual:$wgCacheDirectory $wgCacheDirectory]''' (above) to use interface message caching. # '''Set up [http://www.mediawiki.org/wiki/Manual:Squid caching squid servers] if possible.''' Otherwise, at least enable [http://www.mediawiki.org/wiki/Manual:$wgFileCacheDirectory file caching]. # '''Set up [http://www.mediawiki.org/wiki/Memcached Memcached] if possible'''. If you do, set [http://www.mediawiki.org/wiki/Manual:$wgMainCacheType $wgMainCacheType] and [http://www.mediawiki.org/wiki/Manual:$wgParserCacheType $wgParserCacheType] to CACHE_MEMCACHED in LocalSettings.php instead. This is recommended if you have a cluster of servers. # Run <b>php maintenance/rebuildFileCache.php</b> if you use file caching (not squids). # Set [http://www.mediawiki.org/wiki/Manual:$wgJobRunRate $wgJobRunRate] to 0 and set up a crontab or shell script to run [http://www.mediawiki.org/wiki/Job_queue jobs] (like [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/jobs-loop.sh?revision=22101&view=markup&sortby=date this] with [http://svn.wikimedia.org/viewvc/mediawiki/trunk/tools/jobs-loop/run-jobs.c?revision=22101&view=markup&sortby=date this] for example). With $wgJobRunRate at 0 and the above changes, you should be able to avoid db hits on many requests. # Set [http://www.mediawiki.org/wiki/Manual:$wgDiff $wgDiff] and [http://www.mediawiki.org/wiki/Manual:$wgDiff3 $wgDiff3] to gnu diff utility (download as needed). This is recommended. The default PHP diff code is slow and crashy. # Edit the [http://www.mediawiki.org/wiki/MediaWiki:Aboutsite MediaWiki:Aboutsite] and [http://www.mediawiki.org/wiki/MediaWiki:Pagetitle MediaWiki:Pagetitle] system messages by changing <nowiki>{{SITENAME}}</nowiki> into your site name. This avoids extra parsing on each hit. # If you really need hitcounters, use [http://www.mediawiki.org/wiki/Manual:$wgHitcounterUpdateFreq $wgHitcounterUpdateFreq] instead of the [http://www.mediawiki.org/wiki/Manual:$wgDisableCounters $wgDisableCounters] setting above. # In the webserver's php.ini file. Make sure realpath_cache_size is set, perhaps to 512k or more. # Consider enabling EnableMMAP and EnableSendfile in httpd.conf (for Apache). Please read the apache docs for NFS and compatibility issues first. # [MySQL] Set your mysql server config files to only use server modes corresponding to [http://www.mediawiki.org/wiki/Manual:$wgSQLMode $wgSQLMode] (default is "" for no modes). Restart the mysql server, and then set $wgSQLMode = null. [http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast] === Some variables === $wgDisableCounters = true; [http://www.siteground.com/tutorials/websiteperformance/optimize_mediawiki.htm]<br> $wgCheckSerialized = false; [http://www.gossamer-threads.com/lists/wiki/wikitech/156449] == Starten aus einem Netzwerkpfad == Befindet sich das Basisverzeichnis des Webservers und/oder wikis auf einem Netzwerk, auf das per UNC zugegriffen wird (z.B. \\NAS\Folder1\...), muss eine Datei von mediawiki angepasst werden, da sonst die Pfadbildung fehlerhaft ist: includes\AutoLoader.php:<br> Alter Inhalt:<br> <code><poem class="toccolours"> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' ) { global $IP; $filename = "$IP/$filename"; } </poem></code> Neuer Inhalt:<br> <code><poem class="toccolours"> if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' <b>&& substr ($filename, 0, 2) != "\\\\")</b> { global $IP; $filename = "$IP/$filename"; } </poem></code> == Fehler bei Pfadzusammensetzung == Seit Version 1.29 macht Mediawiki etwas falsch beim Zusammensetzen mancher Pfade unter Windows. Z.B. der absolute Pfad für $wgLogo enthält mittendrin ein "..", das dazu führt, dass die Grafik nicht gefunden wird und ein Fehler ausgegeben wird. Abhilfe schafft hier am einfachsten die Angabe eines relativen Pfades, der mit einem Dummyteil beginnt, einem Ordner, der nicht existiert: <code><poem> $wgLogo = "x/resources/assets/mediawiki.png"; </poem></code> 664bd6683eacd15240db326686683d830f20642b Raspberry PI 0 2664 3073 3050 2022-03-13T22:59:33Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accespoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> ff30ba75993d8c0eefa4a91018dd19122a833379 3094 3073 2022-12-29T10:33:30Z Satria 1 /* Vorbereitung von Raspbian */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und '''das Kennwort des "pi" Benutzers zu ändern!''' == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> 6228784587b598436e51ed2ec05cc30a84c285bc 3095 3094 2022-12-29T10:55:17Z Satria 1 Standardbenutzer unter RaspiOS wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> 8146ec8258f467a319313522156bb3c962d9fddd 3096 3095 2023-01-05T05:15:37Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) Desktop === Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. 4e0cf33e699bb5d893f838b9bdcd0be3e271c2f7 3097 3096 2023-01-06T18:07:09Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) Desktop === Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microCD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microCD.img</pre> '''Die Sektorangabe für microCD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524880''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524880*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963478K.''' === Größenanpassungen im Image === <pre></pre> a8491eea9733e5239768d0078cecfefbe5afd605 3098 3097 2023-01-06T19:16:25Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) Desktop === Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microCD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microCD.img</pre> '''Die Sektorangabe für microCD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. 5e551dfa0fbca36a43a6f50fd291b8a02af59959 3099 3098 2023-01-06T19:17:21Z Satria 1 /* microSD Karten Image verkleinern */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) Desktop === Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microCD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microCD.img</pre> '''Die Sektorangabe für microCD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ 45f1e39df9f3e34c41326c5a7f02f969198530c0 3100 3099 2023-01-06T19:17:39Z Satria 1 /* Das Image verkleinern */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) Desktop === Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microCD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microCD.img</pre> '''Die Sektorangabe für microCD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ 5859ad778af266eb57a3b2eeb4f9727137163c4c 3101 3100 2023-01-15T15:31:27Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) Desktop === Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microCD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microCD.img</pre> '''Die Sektorangabe für microCD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard 45a6bc7b0ba4754ed97474b7f8ae47743fd709a6 3106 3101 2023-02-07T03:14:20Z Satria 1 /* RaspiOS (Debian 11 bullseye) Desktop */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) lite -> Desktop === Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microCD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microCD.img</pre> '''Die Sektorangabe für microCD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard aafea042e33c72624e2ad52bd73e5be2aa357637 3107 3106 2023-02-08T23:07:20Z Satria 1 /* microSD Karten Image verkleinern */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) lite -> Desktop === Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microCD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microCD.img</pre> '''Die Sektorangabe für microCD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard 791dc4c7d3ef2208e54d0a5cd4776839c34694ec Datei:DGN vertrauen.png 6 2668 3074 2022-03-14T15:38:48Z Satria 1 wikitext text/x-wiki Notwendige Schritte zum Vertrauen einer Zertifizierungsstelle (hier DGN) 6095a5346ef2cb1051d898d92f87c4bab6471a8e Mozilla Thunderbird 0 10 3075 3065 2022-03-14T15:39:35Z Satria 1 wikitext text/x-wiki == Mail-Ordner Einstellungen == Wer von Version 2.x auf 3.x updated, wird (mindestens) eine Eigenschaft der Mail-Ordner vermissen, die den Speicherplatz betrifft Eigenschaften von Ordner (Posteingang/Junk ...) --> Speicherplatz '''"Alle gelesenen Nachrichten"''' wurde durch '''"Gekennzeichnete Nachrichten immer behalten"''' ersetzt, was aber nicht im geringsten dasselbe bedeutet! Der Ordner behält aber stillschweigend die Einstellung von 2.x, diese ist aber nicht mehr erreichbar, sprich - sie lässt sich weder altivieren noch deaktivieren! Jetzt muss man wissen, dass diese Ordner-Eigenschaften im Verzeichnis des Kontos, normalerweise in C:\Dokumente und Einstellungen\<Benutzer>\Anwendungsdaten\Thunderbird\Profiles\xyz.default\Mail\<Kontoname> in Dateien mit der Endung '''.msf'' gespeichert werden. Diese kann man entweder editieren, was aber genaue Kenntnisse voraussetzt(!) oder einfach löschen, und die Konfiguration dann über Thunderbird für jeden Ordner erneut vornehmen. Beim Löschen sollte Thunderbird nicht gestartet sein. '''Achtung! Die Spalten-Einstellungen sowie Sortierreihenfolge des jeweiligen Ordners gehen beim Löschen der .msf Datei ebenfalls verloren und man muss diese Einstellungen erneut vornehmen!''' == Zertifizierungstelle vertrauen == Wenn ein installiertes S/MIME Zertifikat nicht zum digitalen Signieren einer Mail verwendet werden kann (die Fehlermeldung ist nicht sehr zielführend), dann kann es sein, dass der Zertifizierungsstelle noch vertraut werden muss. 1) Das Root-Zertifikat muss installiert sein und 2) ihr muss vertraut werden. Hier sind die notwendigen Schritte zu sehen: [[Datei:DGN vertrauen.png|miniatur]]<br clear="all"> == Updates deaktivieren == Spätestens seit Thunderbird 68 erscheint eine nervige Update-Benachrichtigung als Popup am Burgermenü-Button, alle paar Stunden oder so. Man kann dies verhindern, indem man einen Registry-Wert erstellt, der Updates als "vom Administrator deaktiviert" erscheinen lässt: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Thunderbird\DisableAppUpdate = dword:00000001</pre> Ggf. müssen Schlüssel und der Wert selbst erzeugt werden. f5dd8ba350e4af8952393e4a24760ded0a0a6637 3076 3075 2022-03-14T15:41:22Z Satria 1 /* Zertifizierungstelle vertrauen */ wikitext text/x-wiki == Mail-Ordner Einstellungen == Wer von Version 2.x auf 3.x updated, wird (mindestens) eine Eigenschaft der Mail-Ordner vermissen, die den Speicherplatz betrifft Eigenschaften von Ordner (Posteingang/Junk ...) --> Speicherplatz '''"Alle gelesenen Nachrichten"''' wurde durch '''"Gekennzeichnete Nachrichten immer behalten"''' ersetzt, was aber nicht im geringsten dasselbe bedeutet! Der Ordner behält aber stillschweigend die Einstellung von 2.x, diese ist aber nicht mehr erreichbar, sprich - sie lässt sich weder altivieren noch deaktivieren! Jetzt muss man wissen, dass diese Ordner-Eigenschaften im Verzeichnis des Kontos, normalerweise in C:\Dokumente und Einstellungen\<Benutzer>\Anwendungsdaten\Thunderbird\Profiles\xyz.default\Mail\<Kontoname> in Dateien mit der Endung '''.msf'' gespeichert werden. Diese kann man entweder editieren, was aber genaue Kenntnisse voraussetzt(!) oder einfach löschen, und die Konfiguration dann über Thunderbird für jeden Ordner erneut vornehmen. Beim Löschen sollte Thunderbird nicht gestartet sein. '''Achtung! Die Spalten-Einstellungen sowie Sortierreihenfolge des jeweiligen Ordners gehen beim Löschen der .msf Datei ebenfalls verloren und man muss diese Einstellungen erneut vornehmen!''' == Zertifizierungstelle vertrauen == Wenn ein installiertes S/MIME Zertifikat nicht zum digitalen Signieren einer Mail verwendet werden kann (die Fehlermeldung ist nicht sehr zielführend), dann kann es sein, dass der Zertifizierungsstelle noch vertraut werden muss. 1) Das Root-Zertifikat muss installiert sein und 2) ihr muss vertraut werden. Hier sind die notwendigen Schritte zu sehen: [[Datei:DGN vertrauen.png|miniatur]]<br clear="all"> Es kann sein, dass danach das S/MIME Zertifikat des Kontos erneut ausgewählt werden muss, bevor das Versenden klappt. == Updates deaktivieren == Spätestens seit Thunderbird 68 erscheint eine nervige Update-Benachrichtigung als Popup am Burgermenü-Button, alle paar Stunden oder so. Man kann dies verhindern, indem man einen Registry-Wert erstellt, der Updates als "vom Administrator deaktiviert" erscheinen lässt: <pre>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Mozilla\Thunderbird\DisableAppUpdate = dword:00000001</pre> Ggf. müssen Schlüssel und der Wert selbst erzeugt werden. 12aaf4e2915f95bccb9ed7eccae75401e7ffa2bd Analoges Fernsehen 0 3 3077 2771 2022-03-14T16:12:24Z Satria 1 wikitext text/x-wiki <p class="mw_paragraph">Das analoge terrestrische Fernsehsignal (Empfang der analogen Funkwellen über die "Luft") wurde offziell am 31.12.2008 komplett abgeschaltet. Es ist durch das digitale DVB-T ersetzt worden, das im Übrigen dieselben Frequenzen nutzt, wie das analoge Signal.<br class="mw_emptyline_first">Die Abschaltung des analogen Satellitensignals ist für Termine zwischen 2010 und 2012 geplant. Jeder Sender entscheidet selbst über den Abschalttermin.<br class="mw_emptyline_first">Zielsetzung für die analoge Abschaltung im Kabelnetz ist 2010, was nicht als festgesetzter, endgültiger Termin zu verstehen ist (s. Quellen). Ich persönlich würde aber vorsorgen, damit man nicht plötzlich statt Fernsehen das Nachsehen hat ;) Obwohl - ein paar Tage/Wochen ohne Fernsehn tun auch nicht unbedingt weh ;)<br class="mw_emptyline_first"></p><p class="mw_paragraph"><br data-mce-bogus="1"></p><p class="mw_paragraph">Test:<br data-mce-bogus="1"></p><p><code class="poem">Das wird ein Code-Block, mit Zeilenumbrüchen<br> Mal sehen, wie gut das klappt...<br> Und auch nachträgliches Einfügen<br> einer neuen Zeile... </code><br></p><p></p><div><h2>Quellen</h2></div><p class="mw_paragraph"><a href="http://www.gutefrage.net/tipp/das-maerchen-ueber-die-abschaltung-des-analogen-fernsehens" data-mce-href="http://www.gutefrage.net/tipp/das-maerchen-ueber-die-abschaltung-des-analogen-fernsehens" title="www.gutefrage.net" data-mw-type="external_link" class="link external mw-external-link mceNonEditable" data-mw-wikitext="%5Bhttp://www.gutefrage.net/tipp/das-maerchen-ueber-die-abschaltung-des-analogen-fernsehens%20www.gutefrage.net%5D" contenteditable="false">www.gutefrage.net</a><br><a href="http://de.wikipedia.org/wiki/Analoges_Fernsehen" data-mce-href="http://de.wikipedia.org/wiki/Analoges_Fernsehen" title="Analoges Fernsehen auf Wikipedia" data-mw-type="external_link" class="link external mw-external-link mceNonEditable" data-mw-wikitext="%5Bhttp://de.wikipedia.org/wiki/Analoges_Fernsehen%20Analoges%20Fernsehen%20auf%20Wikipedia%5D" contenteditable="false">Analoges Fernsehen auf Wikipedia</a><br><a href="http://de.wikipedia.org/wiki/Digitaler_Rundfunk" data-mce-href="http://de.wikipedia.org/wiki/Digitaler_Rundfunk" title="Digitaler Rundfunk auf Wikipedia" data-mw-type="external_link" class="link external mw-external-link mceNonEditable" data-mw-wikitext="%5Bhttp://de.wikipedia.org/wiki/Digitaler_Rundfunk%20Digitaler%20Rundfunk%20auf%20Wikipedia%5D" contenteditable="false">Digitaler Rundfunk auf Wikipedia</a><br></p> 67e34482c5465d360c5c5ef48190131999b60967 3078 3077 2022-03-14T16:14:42Z Satria 1 wikitext text/x-wiki Das analoge terrestrische Fernsehsignal (Empfang der analogen Funkwellen über die "Luft") wurde offziell am 31.12.2008 komplett abgeschaltet. Es ist durch das digitale DVB-T ersetzt worden, das im Übrigen dieselben Frequenzen nutzt, wie das analoge Signal. Die Abschaltung des analogen Satellitensignals ist für Termine zwischen 2010 und 2012 geplant. Jeder Sender entscheidet selbst über den Abschalttermin. Zielsetzung für die analoge Abschaltung im Kabelnetz ist 2010, was nicht als festgesetzter, endgültiger Termin zu verstehen ist (s. Quellen). Ich persönlich würde aber vorsorgen, damit man nicht plötzlich statt Fernsehen das Nachsehen hat ;) Obwohl - ein paar Tage/Wochen ohne Fernsehn tun auch nicht unbedingt weh ;) ==Quellen== [http://www.gutefrage.net/tipp/das-maerchen-ueber-die-abschaltung-des-analogen-fernsehens www.gutefrage.net]<br> [http://de.wikipedia.org/wiki/Analoges_Fernsehen Analoges Fernsehen auf Wikipedia]<br> [http://de.wikipedia.org/wiki/Digitaler_Rundfunk Digitaler Rundfunk auf Wikipedia]<br> e2948e4262a6fc79f313f724d8a1226ba7aef715 FFmpeg 0 51 3079 2952 2022-04-06T21:02:30Z Satria 1 wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. == Einzelbilder zu einem Video machen == Aber ist auch das beste freeware tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.<br> Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die einen Namen wie <u>Frame %03d.jpg</u> (passend zu den bild-Dateien) trägt. Die Windows-Dateinamenkonvention erlaubt das zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. == Dateien zusammenfügen == Stichwort "concat". Ja, ffmpeg kann auch Dateien des selben Typs zu einer Datei zusammenfügen und dabei noch ggf. in ein gewünschtes Zielformat konvertieren. Es kann sein, dass das und hier und die Sache mit den Einzelbilden alternativ verwendet werden können. Die Textdatei, die dazu als Quell-Liste der Dateien dient, die aneinandergehängt werden sollen muss so aussehen: <poem> file 'path\to\file' file 'path\to\nextfile' </poem> Sagen wir, sie heißt Liste.txt Die Parameter für ffmpeg lauten: <pre> ffmpeg -f concat -safe 0 -i Liste.txt </pre> == Mehrere Audio-Streams == Die Syntax, um mehrere Audio-Streams mit einem Video-Stream zu multiplexen, ist folgende Syntax notwendig:<br> <pre> ffmpeg <Input params> -i <Audio/Video input file 0> -i <Audio input file 1> -map 0:0 -map 0:1 <Output file> -map 1:0 -newaudio </pre> == Timestamps generieren == Bei der Meldung ''Timestamps are unset in a packet for stream 0'', kann das hier in den Output Paramatern helfen: <pre>-fflags +genpts</pre> oder <pre>-use_wallclock_as_timestamps 1</pre> == Quellen == ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ https://trac.ffmpeg.org/wiki/Concatenate 8c4491e430b7164a3493050defecdd0cb655d6a7 3083 3079 2022-05-10T03:33:51Z Satria 1 /* Timestamps generieren */ wikitext text/x-wiki [http://www.ffmpeg.org/ FFmpeg] ist eine sehr vielseitige open-source Konsolenanwendung, um Videomaterial aller Art zu bearbeiten, insbesondere zwischen den verschiedenen Formaten zu konvertieren. == Einzelbilder zu einem Video machen == Aber ist auch das beste freeware tool, um aus vielen einzelnen Bildern ein Video zu machen! Ab einer gewissen Anzahl von Einzelbildern streiken andere, grafische tools und werden unbrauchbar. FFmpeg ist es quasi egal, wie viele Einzelbilder vorliegen. Sie werden sowieso nicht alle gleichzeitig gecached, geladen oder angezeigt. Voraussetzung ist, das alle Bilder einen einheitlichen Namen haben und durchnummeriert sind, wie z.B. Frame 001.jpg<br> Frame 002.jpg<br> Frame 003.jpg<br> Dann lässt sich aus ihnen mit folgendem Befehl ein Video generieren: <pre>ffmpeg.exe -i "Frame %03d.jpg" -f xxx Video.xxx</pre> Natürich kann oder muss man die restlichen Parameter für gewünschtes Format, Codec usw. korrekt angeben. Knackpunkt ist hier die Pseudo-Input-Datei "Frame %03d.jpg". Der Platzhalter "%03d" steht für alle dreistelligen Zahlen mit führenden Nullen (also 001, nicht 1). Also werden alle Dateien der Reihe nach abgearbeitet, die mit "Frame " beginnen, dann eine 3-stellige Nummer und die Endung ".jpg" haben. Genauso funktionieren natürlich auch Namen wie "Bild%04d.jpg", "Sequenz 1 %05d.bmp" usw.<br> Zwei Einschränkungen: Wenn die Nummerierung Lücken aufweist, hört FFmpeg an dieser Stelle auf und das Video ist dort zu Ende. Ist eine Bild-Datei fehlerhaft, gilt das gleiche. Mit einem kleinen Trick lässt sich auch [http://freeware.satria.de/SmartFFmpeg/ SmartFFmpeg] dazu nutzen, Bilder zu einem Video zusammenzufügen.<br> Im gleichen Verzeichnis wie die Einzelbilder wird eine Dummy-Datei angelegt, die einen Namen wie <u>Frame %03d.jpg</u> (passend zu den bild-Dateien) trägt. Die Windows-Dateinamenkonvention erlaubt das zum Glück.<br> Diese wird in SmartFFmpeg als Input Datei geladen und kann dann wie gewohnt bearbeitet werden, indem man das Preset für AVI Dateien lädt oder was auch immer als Zielformat beliebt. == Dateien zusammenfügen == Stichwort "concat". Ja, ffmpeg kann auch Dateien des selben Typs zu einer Datei zusammenfügen und dabei noch ggf. in ein gewünschtes Zielformat konvertieren. Es kann sein, dass das und hier und die Sache mit den Einzelbilden alternativ verwendet werden können. Die Textdatei, die dazu als Quell-Liste der Dateien dient, die aneinandergehängt werden sollen muss so aussehen: <poem> file 'path\to\file' file 'path\to\nextfile' </poem> Sagen wir, sie heißt Liste.txt Die Parameter für ffmpeg lauten: <pre> ffmpeg -f concat -safe 0 -i Liste.txt </pre> == Mehrere Audio-Streams == Die Syntax, um mehrere Audio-Streams mit einem Video-Stream zu multiplexen, ist folgende Syntax notwendig:<br> <pre> ffmpeg <Input params> -i <Audio/Video input file 0> -i <Audio input file 1> -map 0:0 -map 0:1 <Output file> -map 1:0 -newaudio </pre> == Timestamps generieren == Bei der Meldung ''Timestamps are unset in a packet for stream 0'', kann das hier in den Output Paramatern helfen: <pre>-fflags +genpts</pre> oder <pre>-use_wallclock_as_timestamps 1</pre> Bei Seekproblemen wurde auch schon mal <pre>-fflags +nofillin</pre> empfohlen. == Quellen == ... und weitere Tutorials:<br> http://www.acmor.de/lang/en/2009/12/15/how-to-convert-images-to-video-using-ffmpeg-wie-man-bilder-zu-videos-konvertiert-mit-ffmpeg/<br> http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-October/004663.html<br> http://electron.mit.edu/~gsteele/ffmpeg/ https://trac.ffmpeg.org/wiki/Concatenate e4a3592f2253e7d022c87ea282f3028095e89a2f Angular 0 2657 3080 3006 2022-04-30T21:33:55Z Satria 1 /* 6 to 7 */ wikitext text/x-wiki == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString === Pipes mit Parametern === Möchte man ineinem Template einen Wert durch eine Pipe schicken und dabei Parameter mitgeben, werden diese ungewöhnlicherweise mit einem Doppelpunkt eingeleitet und getrennt: <pre>{{status | round: 2[: 4]}}</pre> In eckigen Klammern stehen mögliche weitere Paramter. In der Pipe-Klasse werden diese Parameter in der transform() Methode dann als Array oder einzeln übergeben, je nach dem, wie die Methode deklariert ist: <code> transform(value: any, arg1?: any, arg2?: any) </code> oder <code> transform(value: any, args?: any[]) </code> == Eingabe == === Template-driven validation with custom validator === {| border="1" ! componentCode.ts !! componentCode.html |- | <code><poem><nowiki> import { FormControl, NG_VALIDATORS, Validator, ValidationErrors } from '@angular/forms'; @Component(...) export class ... { field1String: string; otherString: string; @ViewChild("formName") formName: any; update() { // Man KANN so etwas hier tun: this.formName.controls.field1.updateValueAndValidity(); } } @Directive( selector: '[customValidator]', providers: [{ provide: NG_VALIDATORS, useExisting: CustomValidator, multi: true }] ) export class CustomValidator { @Input('customValidator') param: string; validate(control: FormControl): ValidationErrors { // Eine Auswertung, die param verwendet (oder auch nicht) return { myNamedError: true }; } } </nowiki></poem></code> |valign="top"| <code><poem><nowiki> <form #formName="ngForm" novalidate> <input #field1="ngModel" type="text" name="field1" [(ngModel)]="field1String" required [customValidation]="otherString"/> <div *ngIf="formName.invalid && (formName.dirty || formName.touched)"> <div *ngIf="formName.errors.required"> Pflichtfeld! </div> <div *ngIf="formName.errors.myNamedError"> Speziellere Fehlermeldung! </div> </div> </form> </nowiki></poem></code> |} == Observables == === One-time subscription === Für rxJS > 5.5: <code><poem> import { first } from 'rxjs/operators'; observableMethod.pipe(first()).subscribe(method); </poem></code> Es gibt wohl aber Situationen, in denen die Subscription sowieso automatisch beendet wird... === Finalize === Der operator "finalize" wird ausgeführt nachdem das Observable fertig ist, ob mit oder ohne Fehler: <code><poem> import { finalize } from 'rxjs/operators'; asyncMethod.pipe(finalize(() => executeThis())); </poem></code> == Migrations == === 5 to 6 === https://update.angular.io/#5.2:6.1l2 Mindestens node 8 muss verwendet werden! Die globale Angular/CLI auf 6 anheben (6.2.9): <pre>npm install -g @angular/cli@6</pre> Den lokalen Workspace auf Angular/CLI 6 anheben: <pre>ng update @angular/cli@6</pre> Skripte in der package.json anpassen: CLI Kommandos beginnen jetzt immer mit einem Doppelstrich: --prod --aot ... Angular framework auf 6 anheben: <pre>ng update @angular/core@6</pre> Die letzte Angular 6 Version war '''6.1.10''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@6.4.7 * rxjs@6.5.4 Die Syntax in rxjs 6 hat sich geändert, und es gibt Migrationstools, die das anpassen: <pre>npm install -g rxjs-tslint</pre> <pre>rxjs-5-to-6-migrate -p src/tsconfig.app.json</pre> Danach kann <code>rxjs-compat</code> aus der package.json entfernt werden. === 6 to 7 === https://update.angular.io/#6.1:7.2l2 Die globale Angular/CLI auf 7 anheben (7.3.9): <pre>npm install -g @angular/cli@7</pre> Den lokalen Workspace auf Angular/CLI 7 anheben: <pre>ng update @angular/cli@7 @angular/core@7</pre> Die letzte Angular 7 Version war '''7.2.16''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@7.3.7 * @angular/cdk@7.3.7 746dca5e88304f86c21c8dbb76218b2019b67920 3082 3080 2022-05-01T18:14:30Z Satria 1 wikitext text/x-wiki == Versions == [[Datei:Angular-node-ts-rxjs.png]] == UI == === Datum formatieren === <code><poem> (new Date()).toLocaleDateString("de-DE", { day: '2-digit', month: '2-digit', year: 'numeric' }); </poem></code> Quellen: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString === Pipes mit Parametern === Möchte man ineinem Template einen Wert durch eine Pipe schicken und dabei Parameter mitgeben, werden diese ungewöhnlicherweise mit einem Doppelpunkt eingeleitet und getrennt: <pre>{{status | round: 2[: 4]}}</pre> In eckigen Klammern stehen mögliche weitere Paramter. In der Pipe-Klasse werden diese Parameter in der transform() Methode dann als Array oder einzeln übergeben, je nach dem, wie die Methode deklariert ist: <code> transform(value: any, arg1?: any, arg2?: any) </code> oder <code> transform(value: any, args?: any[]) </code> == Eingabe == === Template-driven validation with custom validator === {| border="1" ! componentCode.ts !! componentCode.html |- | <code><poem><nowiki> import { FormControl, NG_VALIDATORS, Validator, ValidationErrors } from '@angular/forms'; @Component(...) export class ... { field1String: string; otherString: string; @ViewChild("formName") formName: any; update() { // Man KANN so etwas hier tun: this.formName.controls.field1.updateValueAndValidity(); } } @Directive( selector: '[customValidator]', providers: [{ provide: NG_VALIDATORS, useExisting: CustomValidator, multi: true }] ) export class CustomValidator { @Input('customValidator') param: string; validate(control: FormControl): ValidationErrors { // Eine Auswertung, die param verwendet (oder auch nicht) return { myNamedError: true }; } } </nowiki></poem></code> |valign="top"| <code><poem><nowiki> <form #formName="ngForm" novalidate> <input #field1="ngModel" type="text" name="field1" [(ngModel)]="field1String" required [customValidation]="otherString"/> <div *ngIf="formName.invalid && (formName.dirty || formName.touched)"> <div *ngIf="formName.errors.required"> Pflichtfeld! </div> <div *ngIf="formName.errors.myNamedError"> Speziellere Fehlermeldung! </div> </div> </form> </nowiki></poem></code> |} == Observables == === One-time subscription === Für rxJS > 5.5: <code><poem> import { first } from 'rxjs/operators'; observableMethod.pipe(first()).subscribe(method); </poem></code> Es gibt wohl aber Situationen, in denen die Subscription sowieso automatisch beendet wird... === Finalize === Der operator "finalize" wird ausgeführt nachdem das Observable fertig ist, ob mit oder ohne Fehler: <code><poem> import { finalize } from 'rxjs/operators'; asyncMethod.pipe(finalize(() => executeThis())); </poem></code> == Migrations == === 5 to 6 === https://update.angular.io/#5.2:6.1l2 Mindestens node 8 muss verwendet werden! Die globale Angular/CLI auf 6 anheben (6.2.9): <pre>npm install -g @angular/cli@6</pre> Den lokalen Workspace auf Angular/CLI 6 anheben: <pre>ng update @angular/cli@6</pre> Skripte in der package.json anpassen: CLI Kommandos beginnen jetzt immer mit einem Doppelstrich: --prod --aot ... Angular framework auf 6 anheben: <pre>ng update @angular/core@6</pre> Die letzte Angular 6 Version war '''6.1.10''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@6.4.7 * rxjs@6.5.4 Die Syntax in rxjs 6 hat sich geändert, und es gibt Migrationstools, die das anpassen: <pre>npm install -g rxjs-tslint</pre> <pre>rxjs-5-to-6-migrate -p src/tsconfig.app.json</pre> Danach kann <code>rxjs-compat</code> aus der package.json entfernt werden. === 6 to 7 === https://update.angular.io/#6.1:7.2l2 Die globale Angular/CLI auf 7 anheben (7.3.9): <pre>npm install -g @angular/cli@7</pre> Den lokalen Workspace auf Angular/CLI 7 anheben: <pre>ng update @angular/cli@7 @angular/core@7</pre> Die letzte Angular 7 Version war '''7.2.16''' Dazu passen folgende Versionen, die ggf. nicht automatisch angehoben werden (in package.json anpassen): * @angular/material@7.3.7 * @angular/cdk@7.3.7 9f6df6503ad0d37d56da33f23272b57a23f3a623 Datei:Angular-node-ts-rxjs.png 6 2669 3081 2022-05-01T18:14:18Z Satria 1 Mataching Angular / CLI / nodejs / rxjs versions wikitext text/x-wiki Mataching Angular / CLI / nodejs / rxjs versions 40632565eaf788b09b91d79df1feee0977e796b3 Docker 0 2665 3084 3063 2022-05-19T00:43:40Z Satria 1 /* Docker Installation */ wikitext text/x-wiki Dieser Artikel dient einem ersten Eindruck in und einem Grundverständnis für Docker. == Was ist Docker? == Kurz und bündig: Docker ist eine Form der Virtualisierung, bei der aber keine komplette Maschine erzeugt wird (wie z.B: bei VMWare), sondern nur eine Art Sandbox, die direkt Ressourcen vom Hostsystem verwendet. Das ist sehr viel schneller als eine komplette VM zu starten. Docker basiert auf Linux. Bei "Docker for Windows" sieht es daher doch so aus, dass per Hyper-V eine komplette Linux-VM erzeugt wird (automatisch bei der Installation), in der Docker dann läuft. Was beim Umschalten auf Windows-Docker passiert, weiß ich zum derzeitigen Zeitpunkt nicht. Die Auswahl an fertigen images wird hier auch geringer sein als bei den nativen Linux images. Update: Mit der Integration von '''WSL 2''' in Windows 10 / Server 2019 ab build 1903 ist Hyper-V für Docker nicht mehr nötig. Mit WSL 2 gibt es eine native Linuxschicht in Windows, die Docker noch schneller und ressourcenschonender macht. === Und wie muss man sich das vorstellen? === Docker wird zunächst grundsätzlich per CLI bedient. Die binaries für die Bedienung liegen bei Docker for Windows als echte Windows .exe Dateien vor. Über den Befehl <pre>docker pull | build | run | start | stop | kill | rmi | tag | ...</pre> können sog. Images vom docker hub (community driven) heruntergeladen und verwendet, gestartet, gestoppt, getagged, gelöscht und neue Images gebaut werden. Z.B. möchte man ein Docker image mit Java haben, um sein eigenes Java-Tool darin laufen zu lassen. Dann könnte man mit <pre>docker pull openjdk:8u181-jre-slim-stretch</pre> ein Image ziehen, das ein Linux enthält und eine Java runtime. Dieses Image liegt nach dem download lokal im Docker repository und ist zunächst aber nicht aktiv. Welche images heruntergeladen werden können und wie sie heißen (hier openjdk:8u181-jre-slim-stretch), ermittelt man auf [https://hub.docker.com/ https://hub.docker.com/] Ob es selber gestartet werden kann, und was dabei passiert hängt vom image ab. Dieses image würde man eher as Basis-image zum Bau eines eigenen verwenden. Das geht mit dem Befehl <pre>docker build</pre> Dieser Befehl sucht im aktuellen Verzeichnis nach einer Datei <code>dockerfile</code>, die Definitionen enthält, wie das neue image zu bauen ist ([https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/engine/reference/builder/]) Im Wesentlichen gibt man an, von welchem image man ausgehen möchte (FROM), was man hinzufügen möchte (ADD oder COPY) und was beim Start des images ausgeführt werden soll (CMD). <pre>FROM openjdk:8u181-jre-slim-stretch COPY dist/myTool.jar /usr/bin/ CMD java -jar /usr/bin/myTool.jar</pre> Wird das image auf diese Art gebaut, kann man es später mit <pre>docker run <imageName or ID></pre> ausführen. Ein image, das gerade ausgeführt wird, nennt man container, oder vielmehr wird ein container basierend auf dem image erzeugt. Er ist quasi die laufende Instanz des images. Es können prinzipiell beliebig viele container eines images parallel gestartet werden. Welche container gerade laufen oder glaufen sind, sieht man mit <pre>docker ps -a</pre> == Dockerfile == === ADD / COPY === Zwischen ADD und COPY besteht ein feiner Unterschied. Während COPY einfach nur kopiert, würde ADD normale Dateien auch kopieren, aber bekannte Archive (.tar, ...?) stattdessen entpacken. Der zweite Parameter ist der Zielort, der ggf. im selben Schritt erstellt wird. === RUN / CMD === RUN führt Befehle IM image zum build-Zeitpunkt aus. Man kann hier z.B. apt-get tasks unterbringen, um im image Software nachzuinstallieren. CMD führt den nachfolgenden Befehl jedes Mal (im container) aus, wenn ein image gestartet wird. == Volumes == Volumes sind Dateipfade des Hostsystems, die in den container hinein gelinked werden können wie mount points. Somit kann ein Austausch zwischen container und Hostsystem stattfinden. Das geschieht beim Starten des containers: <pre>docker run <image name or ID> --volume \Hostpfad:/Containerpfad</pre> Zu ermitteln, welche volumes in einem container gemounted sind, geht mit diesem Befehl: <pre>docker inspect -f {{ .Mounts }} <ContainerID></pre> == Hardwarewechsel == Eine negative Erfahrung beim Wechsel der Hardware (neuer Laptop, alte SSD): Docker startete nicht mehr. Irgendein Problem mit Hyper-V. Hyper-V ließ sich aber auch nicht deinstallieren, um es dann neuzuinstallieren. Beim Deinstallationsprozess wollte Windows neustarten, meldete dann einen Fehler und meinte, die Änderungen würden rückgängig gemacht - Hyper-V war noch da. Es gab keine Lösung außer einer Neuinstallation. '''Also: Vermutlich sollte man sowohl Docker als auch Hyper-V sauber deinstallieren, dann Platte und BS auf die neue Hardware bringen und dort Hyper-V und Docker wieder installieren.''' == Docker verschieben == '''Diese Beschreibung bezieht sich auf Docker unter WSL 2 (ab Windows 10 1903)''' Möchte man Platz auf Laufwerk C: sparen und Docker verschieben, muss man 2 Dinge tun: #Die 2&nbsp;WSL Distributions, die Docker angelegt hat verschieben. #Das Installationsverzeichnis von Docker verschieben und den Dienst anpassen. === WSL Distributionen verschieben === Ich weiß nicht, ob Windows da etwas mitbringt, aber es gibt ein Tool, das WSL sehr gut managen kann: [https://github.com/DDoSolitary/LxRunOffline LxRunOffline]. Docker legt 2 Distributionen an, die man mit <pre>lxrunoffline l</pre> abfragen kann: docker-desktop<br/> und<br/> docker-desktop-data Informationen, z.B. über Speicherort erhält man mit: <code>lxrunoffline sm -n docker-desktop</code> Verschieben lassen sich beide Distributionen per: <pre> lxrunoffline m -n docker-desktop -d <Zielverzeichnis1> und lxrunoffline m -n docker-desktop-data -d <Zielverzeichnis2> </pre> === Docker-Installationsverzeichnis === Man beendet Docker Desktop und beendet den Docker-Dienst. Dann verschiebt man das gesamte Docker-Verzeichnis (C:\Program&nbsp;Files\Docker) zum gewünschten Ort (<Zielverzeichnis>) und führt dann aus: <pre>sc config com.docker.service binPath="<Zielverzeichnis>\Docker\com.docker.service.exe"</pre> Docker-Dienst und Docker-Desktop starten, und alles sollte jetzt funktionieren. == Docker Installation == Wenn <u>nicht</u> '''Docker Desktop''' verwendet weren soll (ab Version 4 ist diese Software unter gewissen Umständen kostenpflichtig), dann sind ein paar manuelle Schritte nötig, um Docker zu installieren. #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]).<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Linux starten (Kommando <code>ubuntu</code>) #Beim ersten Start soll ein Benutzer erstellt werden. Wir nennen ihn hier exemplarisch ''docker'' mit Passwort ''docker''. #Sicherstellen, dass ''docker'' ein superuser ist: <code>sudo grep -E 'sudo' /etc/group</code> Hierbei sollte so eine Zeile wie ''sudo:x:27:docker'' herauskommen. Wenn nicht, muss das hier ausgeführt werden: <code>usermod -aG sudo docker</code>, wobei docker der Benutzername ist, den wir in Schritt 4 erstellt haben. #System aktualisieren: <code>sudo apt update && sudo apt upgrade</code> #Ein paar Umgebungsvariablen setzen: <code>source /etc/os-release</code> #Dem Docker Repo vertrauen: <code>curl -fsSL [https://download.docker.com/linux/${ID}/gpg https://download.docker.com/linux/${ID}/gpg] | sudo apt-key add -</code> #Repo Info aktualisieren: <code>echo "deb [arch=amd64] [https://download.docker.com/linux/${ID} https://download.docker.com/linux/${ID}] ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list</code> #apt aktualisieren: <code>sudo apt update</code> #Docker installieren: <code>sudo apt install docker-ce docker-ce-cli containerd.io</code> #Den aktuellen User zur Gruppe ''docker'' hinzufügen: <code>sudo usermod -aG docker $USER</code> #Jetzt kann der Docker Deamon gestartet werden: sudo dockerd -H 127.0.0.1<br/> Dabei wird am Ende ein Socket gemeldet, z.B.: ''API listen on 127.0.0.1:2375''<br/> '''Hierfür muss Linux Distro mit Adminrechten gestartet werden!''' #Dieser Socket sollte im Windows Hostsystem in die DOCKER_HOST Variable geschrieben werden. #In Windows wird dann das Docker CLI ([https://github.com/StefanScherer/docker-cli-builder/releases https://github.com/StefanScherer/docker-cli-builder/releases]) heruntergeladen und an beliebiger Stelle platziert.<br/> Integration in den PATH und schon ist <code>docker.exe</code> aufrufbar. #Um das Benutzerpasswort nicht immer eingeben zu müssen, kann den Benutzern der Gruppe ''docker'' das Ausführen von dockerd ohne Passwort erlaubt werden. Dazu wird dieser Befehl aufgerufen: <code>sudo visudo</code> und diese Zeilen ergänzt: <code>%docker ALL=(ALL) NOPASSWD: /usr/bin/dockerd</code> #Ab jetzt kann von Windows aus (z.B. über die Aufgabenplanung) das asynchrone Kommando abgesetzt werden, um den Docker-Deamon im Hintergrund zu starten: <code>wsl sh -c "nohup sudo -b dockerd -H 127.0.0.1 > /mnt/wsl/docker.log"</code> === Manuelle Installation === Wenn man die Linux Distribution nicht über die Ubuntu App aus de Windows Store installieren möchte oder aber einfach nur das Installationsverzeichnis anpassen will, müssen die Schritte 1-4 etwas anders aussehen: #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]). '''Wir benötigen hier nur das GZip Archiv!'''<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Im Ordner ''C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc'' sollte sich jetzt eine Datei ''install.tar.gz'' liegen.<br/> Also führt man den Befehl aus: <code>wsl --import <Name> <Zielverzeichnis> C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc\install.tar.gz</code> #Ist Linux dann installiert, startet man diese Instanz mit <code>wsl -d <Name></code> (ggf. ist <Name> auch der Default, dann genügt: <code>wsl</code> #Man erstellt einen nicht-root Benutzer mit <code>adduser docker</code> Ab hier geht es mit dem obigen Schritt 5 weiter. Außerdem kann man per Regedit jetzt den neuen Benutzer, der die ID 1000 haben sollte, als Default-Benutzer eintragen: ''HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{Instanz-CLSID}\DefaultUid = 1000 (Dezimal)''<br/> Als weitere Registrymodifikation kann man den Schlüssel <code>KernelCommandLine</code> auf ''BOOT_IMAGE=/kernel init=/init'' setzen (wie bei der automatischen Installation), da sonst defaultmäßig ''BOOT_IMAGE=/kernel init=/init ro'' angenommen wird. Was der Unterschied ist, kann ich leider nicht sagen, ich habe diesen einfach erst mal festgestellt. Aufpassen muss man jetzt bei Mounted Volumes ins Windows-Dateisystem. Diese funktionieren unter Docker Desktop mit lokalen Pfadangaben wie <code>-v D:\Ordner1\Ordner2:/tmp</code> jetzt aber muss man <code>-v /mnt/d/Ordner1/Ordner2:/tmp</code> schreiben! === Verbindungen aus dem Container zum Host === In einem Briged Network kann aus dem Container heraus natürlich nicht per "localhost" auf den Host zugegriffen werden. Man muss den Container mit dem Parameter <code>--add-host host.docker.internal:host-gateway</code> starten, damit <code>host.docker.internal</code> zum Host führt. == VMWare == Auch wenn Hyper-V nicht installiert sein muss, erfordert WSL2 den Hypervisor, der normalerweise als Startparameter im Bootmanager von Windows aktiviert ist. Möchte man VMWare verwenden, muss dieser deaktiviert werden und Windows neu gestartet werden! <code>bcdedit /set hypervisorlaunchtype off</code> Möchte man wieder WSL2 verwenden, aktiviert man ihn wieder und startet neu: <code>bcdedit /set hypervisorlaunchtype Auto</code> == Quellen == [https://docs.docker.com/reference/ https://docs.docker.com/reference/] [https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive] [https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5 https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5] [https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik] [https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9 https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9] 75ffc3a69599b7d06298208097e3369781cf0f5e 3085 3084 2022-05-19T01:13:55Z Satria 1 /* Docker Installation */ wikitext text/x-wiki Dieser Artikel dient einem ersten Eindruck in und einem Grundverständnis für Docker. == Was ist Docker? == Kurz und bündig: Docker ist eine Form der Virtualisierung, bei der aber keine komplette Maschine erzeugt wird (wie z.B: bei VMWare), sondern nur eine Art Sandbox, die direkt Ressourcen vom Hostsystem verwendet. Das ist sehr viel schneller als eine komplette VM zu starten. Docker basiert auf Linux. Bei "Docker for Windows" sieht es daher doch so aus, dass per Hyper-V eine komplette Linux-VM erzeugt wird (automatisch bei der Installation), in der Docker dann läuft. Was beim Umschalten auf Windows-Docker passiert, weiß ich zum derzeitigen Zeitpunkt nicht. Die Auswahl an fertigen images wird hier auch geringer sein als bei den nativen Linux images. Update: Mit der Integration von '''WSL 2''' in Windows 10 / Server 2019 ab build 1903 ist Hyper-V für Docker nicht mehr nötig. Mit WSL 2 gibt es eine native Linuxschicht in Windows, die Docker noch schneller und ressourcenschonender macht. === Und wie muss man sich das vorstellen? === Docker wird zunächst grundsätzlich per CLI bedient. Die binaries für die Bedienung liegen bei Docker for Windows als echte Windows .exe Dateien vor. Über den Befehl <pre>docker pull | build | run | start | stop | kill | rmi | tag | ...</pre> können sog. Images vom docker hub (community driven) heruntergeladen und verwendet, gestartet, gestoppt, getagged, gelöscht und neue Images gebaut werden. Z.B. möchte man ein Docker image mit Java haben, um sein eigenes Java-Tool darin laufen zu lassen. Dann könnte man mit <pre>docker pull openjdk:8u181-jre-slim-stretch</pre> ein Image ziehen, das ein Linux enthält und eine Java runtime. Dieses Image liegt nach dem download lokal im Docker repository und ist zunächst aber nicht aktiv. Welche images heruntergeladen werden können und wie sie heißen (hier openjdk:8u181-jre-slim-stretch), ermittelt man auf [https://hub.docker.com/ https://hub.docker.com/] Ob es selber gestartet werden kann, und was dabei passiert hängt vom image ab. Dieses image würde man eher as Basis-image zum Bau eines eigenen verwenden. Das geht mit dem Befehl <pre>docker build</pre> Dieser Befehl sucht im aktuellen Verzeichnis nach einer Datei <code>dockerfile</code>, die Definitionen enthält, wie das neue image zu bauen ist ([https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/engine/reference/builder/]) Im Wesentlichen gibt man an, von welchem image man ausgehen möchte (FROM), was man hinzufügen möchte (ADD oder COPY) und was beim Start des images ausgeführt werden soll (CMD). <pre>FROM openjdk:8u181-jre-slim-stretch COPY dist/myTool.jar /usr/bin/ CMD java -jar /usr/bin/myTool.jar</pre> Wird das image auf diese Art gebaut, kann man es später mit <pre>docker run <imageName or ID></pre> ausführen. Ein image, das gerade ausgeführt wird, nennt man container, oder vielmehr wird ein container basierend auf dem image erzeugt. Er ist quasi die laufende Instanz des images. Es können prinzipiell beliebig viele container eines images parallel gestartet werden. Welche container gerade laufen oder glaufen sind, sieht man mit <pre>docker ps -a</pre> == Dockerfile == === ADD / COPY === Zwischen ADD und COPY besteht ein feiner Unterschied. Während COPY einfach nur kopiert, würde ADD normale Dateien auch kopieren, aber bekannte Archive (.tar, ...?) stattdessen entpacken. Der zweite Parameter ist der Zielort, der ggf. im selben Schritt erstellt wird. === RUN / CMD === RUN führt Befehle IM image zum build-Zeitpunkt aus. Man kann hier z.B. apt-get tasks unterbringen, um im image Software nachzuinstallieren. CMD führt den nachfolgenden Befehl jedes Mal (im container) aus, wenn ein image gestartet wird. == Volumes == Volumes sind Dateipfade des Hostsystems, die in den container hinein gelinked werden können wie mount points. Somit kann ein Austausch zwischen container und Hostsystem stattfinden. Das geschieht beim Starten des containers: <pre>docker run <image name or ID> --volume \Hostpfad:/Containerpfad</pre> Zu ermitteln, welche volumes in einem container gemounted sind, geht mit diesem Befehl: <pre>docker inspect -f {{ .Mounts }} <ContainerID></pre> == Hardwarewechsel == Eine negative Erfahrung beim Wechsel der Hardware (neuer Laptop, alte SSD): Docker startete nicht mehr. Irgendein Problem mit Hyper-V. Hyper-V ließ sich aber auch nicht deinstallieren, um es dann neuzuinstallieren. Beim Deinstallationsprozess wollte Windows neustarten, meldete dann einen Fehler und meinte, die Änderungen würden rückgängig gemacht - Hyper-V war noch da. Es gab keine Lösung außer einer Neuinstallation. '''Also: Vermutlich sollte man sowohl Docker als auch Hyper-V sauber deinstallieren, dann Platte und BS auf die neue Hardware bringen und dort Hyper-V und Docker wieder installieren.''' == Docker verschieben == '''Diese Beschreibung bezieht sich auf Docker unter WSL 2 (ab Windows 10 1903)''' Möchte man Platz auf Laufwerk C: sparen und Docker verschieben, muss man 2 Dinge tun: #Die 2&nbsp;WSL Distributions, die Docker angelegt hat verschieben. #Das Installationsverzeichnis von Docker verschieben und den Dienst anpassen. === WSL Distributionen verschieben === Ich weiß nicht, ob Windows da etwas mitbringt, aber es gibt ein Tool, das WSL sehr gut managen kann: [https://github.com/DDoSolitary/LxRunOffline LxRunOffline]. Docker legt 2 Distributionen an, die man mit <pre>lxrunoffline l</pre> abfragen kann: docker-desktop<br/> und<br/> docker-desktop-data Informationen, z.B. über Speicherort erhält man mit: <code>lxrunoffline sm -n docker-desktop</code> Verschieben lassen sich beide Distributionen per: <pre> lxrunoffline m -n docker-desktop -d <Zielverzeichnis1> und lxrunoffline m -n docker-desktop-data -d <Zielverzeichnis2> </pre> === Docker-Installationsverzeichnis === Man beendet Docker Desktop und beendet den Docker-Dienst. Dann verschiebt man das gesamte Docker-Verzeichnis (C:\Program&nbsp;Files\Docker) zum gewünschten Ort (<Zielverzeichnis>) und führt dann aus: <pre>sc config com.docker.service binPath="<Zielverzeichnis>\Docker\com.docker.service.exe"</pre> Docker-Dienst und Docker-Desktop starten, und alles sollte jetzt funktionieren. == Docker Installation == Wenn <u>nicht</u> '''Docker Desktop''' verwendet weren soll (ab Version 4 ist diese Software unter gewissen Umständen kostenpflichtig), dann sind ein paar manuelle Schritte nötig, um Docker zu installieren. #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]).<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Linux starten (Kommando <code>ubuntu</code>) #Beim ersten Start soll ein Benutzer erstellt werden. Wir nennen ihn hier exemplarisch ''docker'' mit Passwort ''docker''. #Sicherstellen, dass ''docker'' ein superuser ist: <code>sudo grep -E 'sudo' /etc/group</code> Hierbei sollte so eine Zeile wie ''sudo:x:27:docker'' herauskommen. Wenn nicht, muss das hier ausgeführt werden: <code>usermod -aG sudo docker</code>, wobei docker der Benutzername ist, den wir in Schritt 4 erstellt haben. #System aktualisieren: <code>sudo apt update && sudo apt upgrade</code> #Ein paar Umgebungsvariablen setzen: <code>source /etc/os-release</code> #Dem Docker Repo vertrauen: <code>curl -fsSL [https://download.docker.com/linux/${ID}/gpg https://download.docker.com/linux/${ID}/gpg] | sudo apt-key add -</code> #Repo Info aktualisieren: <code>echo "deb [arch=amd64] [https://download.docker.com/linux/${ID} https://download.docker.com/linux/${ID}] ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list</code> #apt aktualisieren: <code>sudo apt update</code> #Docker installieren: <code>sudo apt install docker-ce docker-ce-cli containerd.io</code> #Den aktuellen User zur Gruppe ''docker'' hinzufügen: <code>sudo usermod -aG docker $USER</code> #Jetzt kann der Docker Deamon gestartet werden: sudo dockerd -H 127.0.0.1<br/> Dabei wird am Ende ein Socket gemeldet, z.B.: ''API listen on 127.0.0.1:2375''<br/> '''Hierfür muss Linux Distro mit Adminrechten gestartet werden!''' #Dieser Socket sollte im Windows Hostsystem in die DOCKER_HOST Variable geschrieben werden. #In Windows wird dann das Docker CLI ([https://github.com/StefanScherer/docker-cli-builder/releases https://github.com/StefanScherer/docker-cli-builder/releases]) heruntergeladen und an beliebiger Stelle platziert.<br/> Integration in den PATH und schon ist <code>docker.exe</code> aufrufbar. #Um das Benutzerpasswort nicht immer eingeben zu müssen, kann den Benutzern der Gruppe ''docker'' das Ausführen von dockerd ohne Passwort erlaubt werden. Dazu wird dieser Befehl aufgerufen: <code>sudo visudo</code> und diese Zeilen ergänzt: <code>%docker ALL=(ALL) NOPASSWD: /usr/bin/dockerd</code> #Ab jetzt kann von Windows aus (z.B. über die Aufgabenplanung) das asynchrone Kommando abgesetzt werden, um den Docker-Deamon im Hintergrund zu starten: <code>wsl sh -c "nohup sudo -b dockerd -H 127.0.0.1 > /mnt/wsl/docker.log"</code> === Manuelle Installation === Wenn man die Linux Distribution nicht über die Ubuntu App aus dem Windows Store installieren möchte oder aber einfach nur das Installationsverzeichnis anpassen will, müssen die Schritte 1-4 etwas anders aussehen: #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]). '''Wir benötigen hier nur das GZip Archiv!'''<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Im Ordner ''C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc'' sollte sich jetzt eine Datei ''install.tar.gz'' liegen.<br/> Also führt man den Befehl aus: <code>wsl --import <Name> <Zielverzeichnis> C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc\install.tar.gz</code> #Ist Linux dann installiert, startet man diese Instanz mit <code>wsl -d <Name></code> (ggf. ist <Name> auch der Default, dann genügt: <code>wsl</code> #Man erstellt einen nicht-root Benutzer mit <code>adduser docker</code> Ab hier geht es mit dem obigen Schritt 5 weiter. Außerdem kann man per Regedit jetzt den neuen Benutzer, der die ID 1000 haben sollte, als Default-Benutzer eintragen: ''HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{Instanz-CLSID}\DefaultUid = 1000 (Dezimal)''<br/> Als weitere Registrymodifikation kann man den Schlüssel <code>KernelCommandLine</code> auf ''BOOT_IMAGE=/kernel init=/init'' setzen (wie bei der automatischen Installation), da sonst defaultmäßig ''BOOT_IMAGE=/kernel init=/init ro'' angenommen wird. Was der Unterschied ist, kann ich leider nicht sagen, ich habe diesen einfach erst mal festgestellt. Aufpassen muss man jetzt bei Mounted Volumes ins Windows-Dateisystem. Diese funktionieren unter Docker Desktop mit lokalen Pfadangaben wie <code>-v D:\Ordner1\Ordner2:/tmp</code> jetzt aber muss man <code>-v /mnt/d/Ordner1/Ordner2:/tmp</code> schreiben! === Verbindungen aus dem Container zum Host === In einem Briged Network kann aus dem Container heraus natürlich nicht per "localhost" auf den Host zugegriffen werden. Man muss den Container mit dem Parameter <code>--add-host host.docker.internal:host-gateway</code> starten, damit <code>host.docker.internal</code> zum Host führt. == VMWare == Auch wenn Hyper-V nicht installiert sein muss, erfordert WSL2 den Hypervisor, der normalerweise als Startparameter im Bootmanager von Windows aktiviert ist. Möchte man VMWare verwenden, muss dieser deaktiviert werden und Windows neu gestartet werden! <code>bcdedit /set hypervisorlaunchtype off</code> Möchte man wieder WSL2 verwenden, aktiviert man ihn wieder und startet neu: <code>bcdedit /set hypervisorlaunchtype Auto</code> == Quellen == [https://docs.docker.com/reference/ https://docs.docker.com/reference/] [https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive] [https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5 https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5] [https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik] [https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9 https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9] fcd91d07ddc05dbbe7bb362b39664e62875445b4 3086 3085 2022-05-19T01:23:58Z Satria 1 /* Manuelle Installation */ wikitext text/x-wiki Dieser Artikel dient einem ersten Eindruck in und einem Grundverständnis für Docker. == Was ist Docker? == Kurz und bündig: Docker ist eine Form der Virtualisierung, bei der aber keine komplette Maschine erzeugt wird (wie z.B: bei VMWare), sondern nur eine Art Sandbox, die direkt Ressourcen vom Hostsystem verwendet. Das ist sehr viel schneller als eine komplette VM zu starten. Docker basiert auf Linux. Bei "Docker for Windows" sieht es daher doch so aus, dass per Hyper-V eine komplette Linux-VM erzeugt wird (automatisch bei der Installation), in der Docker dann läuft. Was beim Umschalten auf Windows-Docker passiert, weiß ich zum derzeitigen Zeitpunkt nicht. Die Auswahl an fertigen images wird hier auch geringer sein als bei den nativen Linux images. Update: Mit der Integration von '''WSL 2''' in Windows 10 / Server 2019 ab build 1903 ist Hyper-V für Docker nicht mehr nötig. Mit WSL 2 gibt es eine native Linuxschicht in Windows, die Docker noch schneller und ressourcenschonender macht. === Und wie muss man sich das vorstellen? === Docker wird zunächst grundsätzlich per CLI bedient. Die binaries für die Bedienung liegen bei Docker for Windows als echte Windows .exe Dateien vor. Über den Befehl <pre>docker pull | build | run | start | stop | kill | rmi | tag | ...</pre> können sog. Images vom docker hub (community driven) heruntergeladen und verwendet, gestartet, gestoppt, getagged, gelöscht und neue Images gebaut werden. Z.B. möchte man ein Docker image mit Java haben, um sein eigenes Java-Tool darin laufen zu lassen. Dann könnte man mit <pre>docker pull openjdk:8u181-jre-slim-stretch</pre> ein Image ziehen, das ein Linux enthält und eine Java runtime. Dieses Image liegt nach dem download lokal im Docker repository und ist zunächst aber nicht aktiv. Welche images heruntergeladen werden können und wie sie heißen (hier openjdk:8u181-jre-slim-stretch), ermittelt man auf [https://hub.docker.com/ https://hub.docker.com/] Ob es selber gestartet werden kann, und was dabei passiert hängt vom image ab. Dieses image würde man eher as Basis-image zum Bau eines eigenen verwenden. Das geht mit dem Befehl <pre>docker build</pre> Dieser Befehl sucht im aktuellen Verzeichnis nach einer Datei <code>dockerfile</code>, die Definitionen enthält, wie das neue image zu bauen ist ([https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/engine/reference/builder/]) Im Wesentlichen gibt man an, von welchem image man ausgehen möchte (FROM), was man hinzufügen möchte (ADD oder COPY) und was beim Start des images ausgeführt werden soll (CMD). <pre>FROM openjdk:8u181-jre-slim-stretch COPY dist/myTool.jar /usr/bin/ CMD java -jar /usr/bin/myTool.jar</pre> Wird das image auf diese Art gebaut, kann man es später mit <pre>docker run <imageName or ID></pre> ausführen. Ein image, das gerade ausgeführt wird, nennt man container, oder vielmehr wird ein container basierend auf dem image erzeugt. Er ist quasi die laufende Instanz des images. Es können prinzipiell beliebig viele container eines images parallel gestartet werden. Welche container gerade laufen oder glaufen sind, sieht man mit <pre>docker ps -a</pre> == Dockerfile == === ADD / COPY === Zwischen ADD und COPY besteht ein feiner Unterschied. Während COPY einfach nur kopiert, würde ADD normale Dateien auch kopieren, aber bekannte Archive (.tar, ...?) stattdessen entpacken. Der zweite Parameter ist der Zielort, der ggf. im selben Schritt erstellt wird. === RUN / CMD === RUN führt Befehle IM image zum build-Zeitpunkt aus. Man kann hier z.B. apt-get tasks unterbringen, um im image Software nachzuinstallieren. CMD führt den nachfolgenden Befehl jedes Mal (im container) aus, wenn ein image gestartet wird. == Volumes == Volumes sind Dateipfade des Hostsystems, die in den container hinein gelinked werden können wie mount points. Somit kann ein Austausch zwischen container und Hostsystem stattfinden. Das geschieht beim Starten des containers: <pre>docker run <image name or ID> --volume \Hostpfad:/Containerpfad</pre> Zu ermitteln, welche volumes in einem container gemounted sind, geht mit diesem Befehl: <pre>docker inspect -f {{ .Mounts }} <ContainerID></pre> == Hardwarewechsel == Eine negative Erfahrung beim Wechsel der Hardware (neuer Laptop, alte SSD): Docker startete nicht mehr. Irgendein Problem mit Hyper-V. Hyper-V ließ sich aber auch nicht deinstallieren, um es dann neuzuinstallieren. Beim Deinstallationsprozess wollte Windows neustarten, meldete dann einen Fehler und meinte, die Änderungen würden rückgängig gemacht - Hyper-V war noch da. Es gab keine Lösung außer einer Neuinstallation. '''Also: Vermutlich sollte man sowohl Docker als auch Hyper-V sauber deinstallieren, dann Platte und BS auf die neue Hardware bringen und dort Hyper-V und Docker wieder installieren.''' == Docker verschieben == '''Diese Beschreibung bezieht sich auf Docker unter WSL 2 (ab Windows 10 1903)''' Möchte man Platz auf Laufwerk C: sparen und Docker verschieben, muss man 2 Dinge tun: #Die 2&nbsp;WSL Distributions, die Docker angelegt hat verschieben. #Das Installationsverzeichnis von Docker verschieben und den Dienst anpassen. === WSL Distributionen verschieben === Ich weiß nicht, ob Windows da etwas mitbringt, aber es gibt ein Tool, das WSL sehr gut managen kann: [https://github.com/DDoSolitary/LxRunOffline LxRunOffline]. Docker legt 2 Distributionen an, die man mit <pre>lxrunoffline l</pre> abfragen kann: docker-desktop<br/> und<br/> docker-desktop-data Informationen, z.B. über Speicherort erhält man mit: <code>lxrunoffline sm -n docker-desktop</code> Verschieben lassen sich beide Distributionen per: <pre> lxrunoffline m -n docker-desktop -d <Zielverzeichnis1> und lxrunoffline m -n docker-desktop-data -d <Zielverzeichnis2> </pre> === Docker-Installationsverzeichnis === Man beendet Docker Desktop und beendet den Docker-Dienst. Dann verschiebt man das gesamte Docker-Verzeichnis (C:\Program&nbsp;Files\Docker) zum gewünschten Ort (<Zielverzeichnis>) und führt dann aus: <pre>sc config com.docker.service binPath="<Zielverzeichnis>\Docker\com.docker.service.exe"</pre> Docker-Dienst und Docker-Desktop starten, und alles sollte jetzt funktionieren. == Docker Installation == Wenn <u>nicht</u> '''Docker Desktop''' verwendet weren soll (ab Version 4 ist diese Software unter gewissen Umständen kostenpflichtig), dann sind ein paar manuelle Schritte nötig, um Docker zu installieren. #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]).<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Linux starten (Kommando <code>ubuntu</code>) #Beim ersten Start soll ein Benutzer erstellt werden. Wir nennen ihn hier exemplarisch ''docker'' mit Passwort ''docker''. #Sicherstellen, dass ''docker'' ein superuser ist: <code>sudo grep -E 'sudo' /etc/group</code> Hierbei sollte so eine Zeile wie ''sudo:x:27:docker'' herauskommen. Wenn nicht, muss das hier ausgeführt werden: <code>usermod -aG sudo docker</code>, wobei docker der Benutzername ist, den wir in Schritt 4 erstellt haben. #System aktualisieren: <code>sudo apt update && sudo apt upgrade</code> #Ein paar Umgebungsvariablen setzen: <code>source /etc/os-release</code> #Dem Docker Repo vertrauen: <code>curl -fsSL [https://download.docker.com/linux/${ID}/gpg https://download.docker.com/linux/${ID}/gpg] | sudo apt-key add -</code> #Repo Info aktualisieren: <code>echo "deb [arch=amd64] [https://download.docker.com/linux/${ID} https://download.docker.com/linux/${ID}] ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list</code> #apt aktualisieren: <code>sudo apt update</code> #Docker installieren: <code>sudo apt install docker-ce docker-ce-cli containerd.io</code> #Den aktuellen User zur Gruppe ''docker'' hinzufügen: <code>sudo usermod -aG docker $USER</code> #Jetzt kann der Docker Deamon gestartet werden: sudo dockerd -H 127.0.0.1<br/> Dabei wird am Ende ein Socket gemeldet, z.B.: ''API listen on 127.0.0.1:2375''<br/> '''Hierfür muss Linux Distro mit Adminrechten gestartet werden!''' #Dieser Socket sollte im Windows Hostsystem in die DOCKER_HOST Variable geschrieben werden. #In Windows wird dann das Docker CLI ([https://github.com/StefanScherer/docker-cli-builder/releases https://github.com/StefanScherer/docker-cli-builder/releases]) heruntergeladen und an beliebiger Stelle platziert.<br/> Integration in den PATH und schon ist <code>docker.exe</code> aufrufbar. #Um das Benutzerpasswort nicht immer eingeben zu müssen, kann den Benutzern der Gruppe ''docker'' das Ausführen von dockerd ohne Passwort erlaubt werden. Dazu wird dieser Befehl aufgerufen: <code>sudo visudo</code> und diese Zeilen ergänzt: <code>%docker ALL=(ALL) NOPASSWD: /usr/bin/dockerd</code> #Ab jetzt kann von Windows aus (z.B. über die Aufgabenplanung) das asynchrone Kommando abgesetzt werden, um den Docker-Deamon im Hintergrund zu starten: <code>wsl sh -c "nohup sudo -b dockerd -H 127.0.0.1 > /mnt/wsl/docker.log"</code> === Manuelle Installation === Wenn man die Linux Distribution nicht über die Ubuntu App aus dem Windows Store installieren möchte oder aber einfach nur das Installationsverzeichnis anpassen will, müssen die Schritte 1-4 etwas anders aussehen: #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]). '''Wir benötigen hier nur das GZip Archiv!'''<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Im Ordner ''C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc'' sollte sich jetzt eine Datei ''install.tar.gz'' liegen.<br/> Also führt man den Befehl aus: <code>wsl --import <Name> <Zielverzeichnis> C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc\install.tar.gz --version 2</code> #Ist Linux dann installiert, startet man diese Instanz mit <code>wsl -d <Name></code> (ggf. ist <Name> auch der Default, dann genügt: <code>wsl</code> #Man erstellt einen nicht-root Benutzer mit <code>adduser docker</code> Ab hier geht es mit dem obigen Schritt 5 weiter. Außerdem kann man per Regedit jetzt den neuen Benutzer, der die ID 1000 haben sollte, als Default-Benutzer eintragen: ''HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{Instanz-CLSID}\DefaultUid = 1000 (Dezimal)''<br/> Als weitere Registrymodifikation kann man den Schlüssel <code>KernelCommandLine</code> auf ''BOOT_IMAGE=/kernel init=/init'' setzen (wie bei der automatischen Installation), da sonst defaultmäßig ''BOOT_IMAGE=/kernel init=/init ro'' angenommen wird. Was der Unterschied ist, kann ich leider nicht sagen, ich habe diesen einfach erst mal festgestellt. Aufpassen muss man jetzt bei Mounted Volumes ins Windows-Dateisystem. Diese funktionieren unter Docker Desktop mit lokalen Pfadangaben wie <code>-v D:\Ordner1\Ordner2:/tmp</code> jetzt aber muss man <code>-v /mnt/d/Ordner1/Ordner2:/tmp</code> schreiben! === Verbindungen aus dem Container zum Host === In einem Briged Network kann aus dem Container heraus natürlich nicht per "localhost" auf den Host zugegriffen werden. Man muss den Container mit dem Parameter <code>--add-host host.docker.internal:host-gateway</code> starten, damit <code>host.docker.internal</code> zum Host führt. == VMWare == Auch wenn Hyper-V nicht installiert sein muss, erfordert WSL2 den Hypervisor, der normalerweise als Startparameter im Bootmanager von Windows aktiviert ist. Möchte man VMWare verwenden, muss dieser deaktiviert werden und Windows neu gestartet werden! <code>bcdedit /set hypervisorlaunchtype off</code> Möchte man wieder WSL2 verwenden, aktiviert man ihn wieder und startet neu: <code>bcdedit /set hypervisorlaunchtype Auto</code> == Quellen == [https://docs.docker.com/reference/ https://docs.docker.com/reference/] [https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive] [https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5 https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5] [https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik] [https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9 https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9] 195073c4983b21eaf9f1215162ddb7de74ca0a7d 3087 3086 2022-05-19T01:51:29Z Satria 1 /* Docker Installation */ wikitext text/x-wiki Dieser Artikel dient einem ersten Eindruck in und einem Grundverständnis für Docker. == Was ist Docker? == Kurz und bündig: Docker ist eine Form der Virtualisierung, bei der aber keine komplette Maschine erzeugt wird (wie z.B: bei VMWare), sondern nur eine Art Sandbox, die direkt Ressourcen vom Hostsystem verwendet. Das ist sehr viel schneller als eine komplette VM zu starten. Docker basiert auf Linux. Bei "Docker for Windows" sieht es daher doch so aus, dass per Hyper-V eine komplette Linux-VM erzeugt wird (automatisch bei der Installation), in der Docker dann läuft. Was beim Umschalten auf Windows-Docker passiert, weiß ich zum derzeitigen Zeitpunkt nicht. Die Auswahl an fertigen images wird hier auch geringer sein als bei den nativen Linux images. Update: Mit der Integration von '''WSL 2''' in Windows 10 / Server 2019 ab build 1903 ist Hyper-V für Docker nicht mehr nötig. Mit WSL 2 gibt es eine native Linuxschicht in Windows, die Docker noch schneller und ressourcenschonender macht. === Und wie muss man sich das vorstellen? === Docker wird zunächst grundsätzlich per CLI bedient. Die binaries für die Bedienung liegen bei Docker for Windows als echte Windows .exe Dateien vor. Über den Befehl <pre>docker pull | build | run | start | stop | kill | rmi | tag | ...</pre> können sog. Images vom docker hub (community driven) heruntergeladen und verwendet, gestartet, gestoppt, getagged, gelöscht und neue Images gebaut werden. Z.B. möchte man ein Docker image mit Java haben, um sein eigenes Java-Tool darin laufen zu lassen. Dann könnte man mit <pre>docker pull openjdk:8u181-jre-slim-stretch</pre> ein Image ziehen, das ein Linux enthält und eine Java runtime. Dieses Image liegt nach dem download lokal im Docker repository und ist zunächst aber nicht aktiv. Welche images heruntergeladen werden können und wie sie heißen (hier openjdk:8u181-jre-slim-stretch), ermittelt man auf [https://hub.docker.com/ https://hub.docker.com/] Ob es selber gestartet werden kann, und was dabei passiert hängt vom image ab. Dieses image würde man eher as Basis-image zum Bau eines eigenen verwenden. Das geht mit dem Befehl <pre>docker build</pre> Dieser Befehl sucht im aktuellen Verzeichnis nach einer Datei <code>dockerfile</code>, die Definitionen enthält, wie das neue image zu bauen ist ([https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/engine/reference/builder/]) Im Wesentlichen gibt man an, von welchem image man ausgehen möchte (FROM), was man hinzufügen möchte (ADD oder COPY) und was beim Start des images ausgeführt werden soll (CMD). <pre>FROM openjdk:8u181-jre-slim-stretch COPY dist/myTool.jar /usr/bin/ CMD java -jar /usr/bin/myTool.jar</pre> Wird das image auf diese Art gebaut, kann man es später mit <pre>docker run <imageName or ID></pre> ausführen. Ein image, das gerade ausgeführt wird, nennt man container, oder vielmehr wird ein container basierend auf dem image erzeugt. Er ist quasi die laufende Instanz des images. Es können prinzipiell beliebig viele container eines images parallel gestartet werden. Welche container gerade laufen oder glaufen sind, sieht man mit <pre>docker ps -a</pre> == Dockerfile == === ADD / COPY === Zwischen ADD und COPY besteht ein feiner Unterschied. Während COPY einfach nur kopiert, würde ADD normale Dateien auch kopieren, aber bekannte Archive (.tar, ...?) stattdessen entpacken. Der zweite Parameter ist der Zielort, der ggf. im selben Schritt erstellt wird. === RUN / CMD === RUN führt Befehle IM image zum build-Zeitpunkt aus. Man kann hier z.B. apt-get tasks unterbringen, um im image Software nachzuinstallieren. CMD führt den nachfolgenden Befehl jedes Mal (im container) aus, wenn ein image gestartet wird. == Volumes == Volumes sind Dateipfade des Hostsystems, die in den container hinein gelinked werden können wie mount points. Somit kann ein Austausch zwischen container und Hostsystem stattfinden. Das geschieht beim Starten des containers: <pre>docker run <image name or ID> --volume \Hostpfad:/Containerpfad</pre> Zu ermitteln, welche volumes in einem container gemounted sind, geht mit diesem Befehl: <pre>docker inspect -f {{ .Mounts }} <ContainerID></pre> == Hardwarewechsel == Eine negative Erfahrung beim Wechsel der Hardware (neuer Laptop, alte SSD): Docker startete nicht mehr. Irgendein Problem mit Hyper-V. Hyper-V ließ sich aber auch nicht deinstallieren, um es dann neuzuinstallieren. Beim Deinstallationsprozess wollte Windows neustarten, meldete dann einen Fehler und meinte, die Änderungen würden rückgängig gemacht - Hyper-V war noch da. Es gab keine Lösung außer einer Neuinstallation. '''Also: Vermutlich sollte man sowohl Docker als auch Hyper-V sauber deinstallieren, dann Platte und BS auf die neue Hardware bringen und dort Hyper-V und Docker wieder installieren.''' == Docker verschieben == '''Diese Beschreibung bezieht sich auf Docker unter WSL 2 (ab Windows 10 1903)''' Möchte man Platz auf Laufwerk C: sparen und Docker verschieben, muss man 2 Dinge tun: #Die 2&nbsp;WSL Distributions, die Docker angelegt hat verschieben. #Das Installationsverzeichnis von Docker verschieben und den Dienst anpassen. === WSL Distributionen verschieben === Ich weiß nicht, ob Windows da etwas mitbringt, aber es gibt ein Tool, das WSL sehr gut managen kann: [https://github.com/DDoSolitary/LxRunOffline LxRunOffline]. Docker legt 2 Distributionen an, die man mit <pre>lxrunoffline l</pre> abfragen kann: docker-desktop<br/> und<br/> docker-desktop-data Informationen, z.B. über Speicherort erhält man mit: <code>lxrunoffline sm -n docker-desktop</code> Verschieben lassen sich beide Distributionen per: <pre> lxrunoffline m -n docker-desktop -d <Zielverzeichnis1> und lxrunoffline m -n docker-desktop-data -d <Zielverzeichnis2> </pre> === Docker-Installationsverzeichnis === Man beendet Docker Desktop und beendet den Docker-Dienst. Dann verschiebt man das gesamte Docker-Verzeichnis (C:\Program&nbsp;Files\Docker) zum gewünschten Ort (<Zielverzeichnis>) und führt dann aus: <pre>sc config com.docker.service binPath="<Zielverzeichnis>\Docker\com.docker.service.exe"</pre> Docker-Dienst und Docker-Desktop starten, und alles sollte jetzt funktionieren. == Docker Installation == Wenn <u>nicht</u> '''Docker Desktop''' verwendet weren soll (ab Version 4 ist diese Software unter gewissen Umständen kostenpflichtig), dann sind ein paar manuelle Schritte nötig, um Docker zu installieren. Voraussetzung: Die Virtualisierungsplattform ist aktiviert. (Windows-Features: "Plattform für virtuelle Computer") ggf. hilft das Kommando: <code>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</code> #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]).<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Linux starten (Kommando <code>ubuntu</code>) #Beim ersten Start soll ein Benutzer erstellt werden. Wir nennen ihn hier exemplarisch ''docker'' mit Passwort ''docker''. #Sicherstellen, dass ''docker'' ein superuser ist: <code>sudo grep -E 'sudo' /etc/group</code> Hierbei sollte so eine Zeile wie ''sudo:x:27:docker'' herauskommen. Wenn nicht, muss das hier ausgeführt werden: <code>usermod -aG sudo docker</code>, wobei docker der Benutzername ist, den wir in Schritt 4 erstellt haben. #System aktualisieren: <code>sudo apt update && sudo apt upgrade</code> #Ein paar Umgebungsvariablen setzen: <code>source /etc/os-release</code> #Dem Docker Repo vertrauen: <code>curl -fsSL [https://download.docker.com/linux/${ID}/gpg https://download.docker.com/linux/${ID}/gpg] | sudo apt-key add -</code> #Repo Info aktualisieren: <code>echo "deb [arch=amd64] [https://download.docker.com/linux/${ID} https://download.docker.com/linux/${ID}] ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list</code> #apt aktualisieren: <code>sudo apt update</code> #Docker installieren: <code>sudo apt install docker-ce docker-ce-cli containerd.io</code> #Den aktuellen User zur Gruppe ''docker'' hinzufügen: <code>sudo usermod -aG docker $USER</code> #Jetzt kann der Docker Deamon gestartet werden: sudo dockerd -H 127.0.0.1<br/> Dabei wird am Ende ein Socket gemeldet, z.B.: ''API listen on 127.0.0.1:2375''<br/> '''Hierfür muss Linux Distro mit Adminrechten gestartet werden!''' #Dieser Socket sollte im Windows Hostsystem in die DOCKER_HOST Variable geschrieben werden in der Form <code>tcp://127.0.0.1:2375</code>. #In Windows wird dann das Docker CLI ([https://github.com/StefanScherer/docker-cli-builder/releases https://github.com/StefanScherer/docker-cli-builder/releases]) heruntergeladen und an beliebiger Stelle platziert.<br/> Integration in den PATH und schon ist <code>docker.exe</code> aufrufbar. #Um das Benutzerpasswort nicht immer eingeben zu müssen, kann den Benutzern der Gruppe ''docker'' das Ausführen von dockerd ohne Passwort erlaubt werden. Dazu wird dieser Befehl aufgerufen: <code>sudo visudo</code> und diese Zeilen ergänzt: <code>%docker ALL=(ALL) NOPASSWD: /usr/bin/dockerd</code> #Ab jetzt kann von Windows aus (z.B. über die Aufgabenplanung) das asynchrone Kommando abgesetzt werden, um den Docker-Deamon im Hintergrund zu starten: <code>wsl sh -c "nohup sudo -b dockerd -H 127.0.0.1 > /mnt/wsl/docker.log"</code> === Manuelle Installation === Wenn man die Linux Distribution nicht über die Ubuntu App aus dem Windows Store installieren möchte oder aber einfach nur das Installationsverzeichnis anpassen will, müssen die Schritte 1-4 etwas anders aussehen: #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]). '''Wir benötigen hier nur das GZip Archiv!'''<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Im Ordner ''C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc'' sollte sich jetzt eine Datei ''install.tar.gz'' liegen.<br/> Also führt man den Befehl aus: <code>wsl --import <Name> <Zielverzeichnis> C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc\install.tar.gz --version 2</code> #Ist Linux dann installiert, startet man diese Instanz mit <code>wsl -d <Name></code> (ggf. ist <Name> auch der Default, dann genügt: <code>wsl</code> #Man erstellt einen nicht-root Benutzer mit <code>adduser docker</code> Ab hier geht es mit dem obigen Schritt 5 weiter. Außerdem kann man per Regedit jetzt den neuen Benutzer, der die ID 1000 haben sollte, als Default-Benutzer eintragen: ''HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{Instanz-CLSID}\DefaultUid = 1000 (Dezimal)''<br/> Als weitere Registrymodifikation kann man den Schlüssel <code>KernelCommandLine</code> auf ''BOOT_IMAGE=/kernel init=/init'' setzen (wie bei der automatischen Installation), da sonst defaultmäßig ''BOOT_IMAGE=/kernel init=/init ro'' angenommen wird. Was der Unterschied ist, kann ich leider nicht sagen, ich habe diesen einfach erst mal festgestellt. Aufpassen muss man jetzt bei Mounted Volumes ins Windows-Dateisystem. Diese funktionieren unter Docker Desktop mit lokalen Pfadangaben wie <code>-v D:\Ordner1\Ordner2:/tmp</code> jetzt aber muss man <code>-v /mnt/d/Ordner1/Ordner2:/tmp</code> schreiben! === Verbindungen aus dem Container zum Host === In einem Briged Network kann aus dem Container heraus natürlich nicht per "localhost" auf den Host zugegriffen werden. Man muss den Container mit dem Parameter <code>--add-host host.docker.internal:host-gateway</code> starten, damit <code>host.docker.internal</code> zum Host führt. == VMWare == Auch wenn Hyper-V nicht installiert sein muss, erfordert WSL2 den Hypervisor, der normalerweise als Startparameter im Bootmanager von Windows aktiviert ist. Möchte man VMWare verwenden, muss dieser deaktiviert werden und Windows neu gestartet werden! <code>bcdedit /set hypervisorlaunchtype off</code> Möchte man wieder WSL2 verwenden, aktiviert man ihn wieder und startet neu: <code>bcdedit /set hypervisorlaunchtype Auto</code> == Quellen == [https://docs.docker.com/reference/ https://docs.docker.com/reference/] [https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive] [https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5 https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5] [https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik] [https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9 https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9] 1a5702f7704c3ae0eb10aaec89e3e84bf51590e2 3088 3087 2022-05-19T01:57:07Z Satria 1 /* Manuelle Installation */ wikitext text/x-wiki Dieser Artikel dient einem ersten Eindruck in und einem Grundverständnis für Docker. == Was ist Docker? == Kurz und bündig: Docker ist eine Form der Virtualisierung, bei der aber keine komplette Maschine erzeugt wird (wie z.B: bei VMWare), sondern nur eine Art Sandbox, die direkt Ressourcen vom Hostsystem verwendet. Das ist sehr viel schneller als eine komplette VM zu starten. Docker basiert auf Linux. Bei "Docker for Windows" sieht es daher doch so aus, dass per Hyper-V eine komplette Linux-VM erzeugt wird (automatisch bei der Installation), in der Docker dann läuft. Was beim Umschalten auf Windows-Docker passiert, weiß ich zum derzeitigen Zeitpunkt nicht. Die Auswahl an fertigen images wird hier auch geringer sein als bei den nativen Linux images. Update: Mit der Integration von '''WSL 2''' in Windows 10 / Server 2019 ab build 1903 ist Hyper-V für Docker nicht mehr nötig. Mit WSL 2 gibt es eine native Linuxschicht in Windows, die Docker noch schneller und ressourcenschonender macht. === Und wie muss man sich das vorstellen? === Docker wird zunächst grundsätzlich per CLI bedient. Die binaries für die Bedienung liegen bei Docker for Windows als echte Windows .exe Dateien vor. Über den Befehl <pre>docker pull | build | run | start | stop | kill | rmi | tag | ...</pre> können sog. Images vom docker hub (community driven) heruntergeladen und verwendet, gestartet, gestoppt, getagged, gelöscht und neue Images gebaut werden. Z.B. möchte man ein Docker image mit Java haben, um sein eigenes Java-Tool darin laufen zu lassen. Dann könnte man mit <pre>docker pull openjdk:8u181-jre-slim-stretch</pre> ein Image ziehen, das ein Linux enthält und eine Java runtime. Dieses Image liegt nach dem download lokal im Docker repository und ist zunächst aber nicht aktiv. Welche images heruntergeladen werden können und wie sie heißen (hier openjdk:8u181-jre-slim-stretch), ermittelt man auf [https://hub.docker.com/ https://hub.docker.com/] Ob es selber gestartet werden kann, und was dabei passiert hängt vom image ab. Dieses image würde man eher as Basis-image zum Bau eines eigenen verwenden. Das geht mit dem Befehl <pre>docker build</pre> Dieser Befehl sucht im aktuellen Verzeichnis nach einer Datei <code>dockerfile</code>, die Definitionen enthält, wie das neue image zu bauen ist ([https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/engine/reference/builder/]) Im Wesentlichen gibt man an, von welchem image man ausgehen möchte (FROM), was man hinzufügen möchte (ADD oder COPY) und was beim Start des images ausgeführt werden soll (CMD). <pre>FROM openjdk:8u181-jre-slim-stretch COPY dist/myTool.jar /usr/bin/ CMD java -jar /usr/bin/myTool.jar</pre> Wird das image auf diese Art gebaut, kann man es später mit <pre>docker run <imageName or ID></pre> ausführen. Ein image, das gerade ausgeführt wird, nennt man container, oder vielmehr wird ein container basierend auf dem image erzeugt. Er ist quasi die laufende Instanz des images. Es können prinzipiell beliebig viele container eines images parallel gestartet werden. Welche container gerade laufen oder glaufen sind, sieht man mit <pre>docker ps -a</pre> == Dockerfile == === ADD / COPY === Zwischen ADD und COPY besteht ein feiner Unterschied. Während COPY einfach nur kopiert, würde ADD normale Dateien auch kopieren, aber bekannte Archive (.tar, ...?) stattdessen entpacken. Der zweite Parameter ist der Zielort, der ggf. im selben Schritt erstellt wird. === RUN / CMD === RUN führt Befehle IM image zum build-Zeitpunkt aus. Man kann hier z.B. apt-get tasks unterbringen, um im image Software nachzuinstallieren. CMD führt den nachfolgenden Befehl jedes Mal (im container) aus, wenn ein image gestartet wird. == Volumes == Volumes sind Dateipfade des Hostsystems, die in den container hinein gelinked werden können wie mount points. Somit kann ein Austausch zwischen container und Hostsystem stattfinden. Das geschieht beim Starten des containers: <pre>docker run <image name or ID> --volume \Hostpfad:/Containerpfad</pre> Zu ermitteln, welche volumes in einem container gemounted sind, geht mit diesem Befehl: <pre>docker inspect -f {{ .Mounts }} <ContainerID></pre> == Hardwarewechsel == Eine negative Erfahrung beim Wechsel der Hardware (neuer Laptop, alte SSD): Docker startete nicht mehr. Irgendein Problem mit Hyper-V. Hyper-V ließ sich aber auch nicht deinstallieren, um es dann neuzuinstallieren. Beim Deinstallationsprozess wollte Windows neustarten, meldete dann einen Fehler und meinte, die Änderungen würden rückgängig gemacht - Hyper-V war noch da. Es gab keine Lösung außer einer Neuinstallation. '''Also: Vermutlich sollte man sowohl Docker als auch Hyper-V sauber deinstallieren, dann Platte und BS auf die neue Hardware bringen und dort Hyper-V und Docker wieder installieren.''' == Docker verschieben == '''Diese Beschreibung bezieht sich auf Docker unter WSL 2 (ab Windows 10 1903)''' Möchte man Platz auf Laufwerk C: sparen und Docker verschieben, muss man 2 Dinge tun: #Die 2&nbsp;WSL Distributions, die Docker angelegt hat verschieben. #Das Installationsverzeichnis von Docker verschieben und den Dienst anpassen. === WSL Distributionen verschieben === Ich weiß nicht, ob Windows da etwas mitbringt, aber es gibt ein Tool, das WSL sehr gut managen kann: [https://github.com/DDoSolitary/LxRunOffline LxRunOffline]. Docker legt 2 Distributionen an, die man mit <pre>lxrunoffline l</pre> abfragen kann: docker-desktop<br/> und<br/> docker-desktop-data Informationen, z.B. über Speicherort erhält man mit: <code>lxrunoffline sm -n docker-desktop</code> Verschieben lassen sich beide Distributionen per: <pre> lxrunoffline m -n docker-desktop -d <Zielverzeichnis1> und lxrunoffline m -n docker-desktop-data -d <Zielverzeichnis2> </pre> === Docker-Installationsverzeichnis === Man beendet Docker Desktop und beendet den Docker-Dienst. Dann verschiebt man das gesamte Docker-Verzeichnis (C:\Program&nbsp;Files\Docker) zum gewünschten Ort (<Zielverzeichnis>) und führt dann aus: <pre>sc config com.docker.service binPath="<Zielverzeichnis>\Docker\com.docker.service.exe"</pre> Docker-Dienst und Docker-Desktop starten, und alles sollte jetzt funktionieren. == Docker Installation == Wenn <u>nicht</u> '''Docker Desktop''' verwendet weren soll (ab Version 4 ist diese Software unter gewissen Umständen kostenpflichtig), dann sind ein paar manuelle Schritte nötig, um Docker zu installieren. Voraussetzung: Die Virtualisierungsplattform ist aktiviert. (Windows-Features: "Plattform für virtuelle Computer") ggf. hilft das Kommando: <code>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</code> #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]).<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Linux starten (Kommando <code>ubuntu</code>) #Beim ersten Start soll ein Benutzer erstellt werden. Wir nennen ihn hier exemplarisch ''docker'' mit Passwort ''docker''. #Sicherstellen, dass ''docker'' ein superuser ist: <code>sudo grep -E 'sudo' /etc/group</code> Hierbei sollte so eine Zeile wie ''sudo:x:27:docker'' herauskommen. Wenn nicht, muss das hier ausgeführt werden: <code>usermod -aG sudo docker</code>, wobei docker der Benutzername ist, den wir in Schritt 4 erstellt haben. #System aktualisieren: <code>sudo apt update && sudo apt upgrade</code> #Ein paar Umgebungsvariablen setzen: <code>source /etc/os-release</code> #Dem Docker Repo vertrauen: <code>curl -fsSL [https://download.docker.com/linux/${ID}/gpg https://download.docker.com/linux/${ID}/gpg] | sudo apt-key add -</code> #Repo Info aktualisieren: <code>echo "deb [arch=amd64] [https://download.docker.com/linux/${ID} https://download.docker.com/linux/${ID}] ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list</code> #apt aktualisieren: <code>sudo apt update</code> #Docker installieren: <code>sudo apt install docker-ce docker-ce-cli containerd.io</code> #Den aktuellen User zur Gruppe ''docker'' hinzufügen: <code>sudo usermod -aG docker $USER</code> #Jetzt kann der Docker Deamon gestartet werden: sudo dockerd -H 127.0.0.1<br/> Dabei wird am Ende ein Socket gemeldet, z.B.: ''API listen on 127.0.0.1:2375''<br/> '''Hierfür muss Linux Distro mit Adminrechten gestartet werden!''' #Dieser Socket sollte im Windows Hostsystem in die DOCKER_HOST Variable geschrieben werden in der Form <code>tcp://127.0.0.1:2375</code>. #In Windows wird dann das Docker CLI ([https://github.com/StefanScherer/docker-cli-builder/releases https://github.com/StefanScherer/docker-cli-builder/releases]) heruntergeladen und an beliebiger Stelle platziert.<br/> Integration in den PATH und schon ist <code>docker.exe</code> aufrufbar. #Um das Benutzerpasswort nicht immer eingeben zu müssen, kann den Benutzern der Gruppe ''docker'' das Ausführen von dockerd ohne Passwort erlaubt werden. Dazu wird dieser Befehl aufgerufen: <code>sudo visudo</code> und diese Zeilen ergänzt: <code>%docker ALL=(ALL) NOPASSWD: /usr/bin/dockerd</code> #Ab jetzt kann von Windows aus (z.B. über die Aufgabenplanung) das asynchrone Kommando abgesetzt werden, um den Docker-Deamon im Hintergrund zu starten: <code>wsl sh -c "nohup sudo -b dockerd -H 127.0.0.1 > /mnt/wsl/docker.log"</code> === Manuelle Installation === Wenn man die Linux Distribution nicht über die Ubuntu App aus dem Windows Store installieren möchte oder aber einfach nur das Installationsverzeichnis anpassen will, müssen die Schritte 1-4 etwas anders aussehen: #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]). '''Wir benötigen hier nur das GZip Archiv!'''<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Im Ordner ''C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc'' sollte sich jetzt eine Datei ''install.tar.gz'' liegen.<br/> Also führt man den Befehl aus: <code>wsl --import <Name> <Zielverzeichnis> C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc\install.tar.gz --version 2</code> #Ist Linux dann installiert, startet man diese Instanz mit <code>wsl -d <Name></code> (ggf. ist <Name> auch der Default, dann genügt: <code>wsl</code> #Man erstellt einen nicht-root Benutzer mit <code>adduser docker</code> Ab hier geht es mit dem obigen Schritt 6 weiter. Außerdem kann man per Regedit jetzt den neuen Benutzer, der die ID 1000 haben sollte, als Default-Benutzer eintragen: ''HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{Instanz-CLSID}\DefaultUid = 1000 (Dezimal)''<br/> Als weitere Registrymodifikation kann man den Schlüssel <code>KernelCommandLine</code> auf ''BOOT_IMAGE=/kernel init=/init'' setzen (wie bei der automatischen Installation), da sonst defaultmäßig ''BOOT_IMAGE=/kernel init=/init ro'' angenommen wird. Was der Unterschied ist, kann ich leider nicht sagen, ich habe diesen einfach erst mal festgestellt. Aufpassen muss man jetzt bei Mounted Volumes ins Windows-Dateisystem. Diese funktionieren unter Docker Desktop mit lokalen Pfadangaben wie <code>-v D:\Ordner1\Ordner2:/tmp</code> jetzt aber muss man <code>-v /mnt/d/Ordner1/Ordner2:/tmp</code> schreiben! === Verbindungen aus dem Container zum Host === In einem Briged Network kann aus dem Container heraus natürlich nicht per "localhost" auf den Host zugegriffen werden. Man muss den Container mit dem Parameter <code>--add-host host.docker.internal:host-gateway</code> starten, damit <code>host.docker.internal</code> zum Host führt. == VMWare == Auch wenn Hyper-V nicht installiert sein muss, erfordert WSL2 den Hypervisor, der normalerweise als Startparameter im Bootmanager von Windows aktiviert ist. Möchte man VMWare verwenden, muss dieser deaktiviert werden und Windows neu gestartet werden! <code>bcdedit /set hypervisorlaunchtype off</code> Möchte man wieder WSL2 verwenden, aktiviert man ihn wieder und startet neu: <code>bcdedit /set hypervisorlaunchtype Auto</code> == Quellen == [https://docs.docker.com/reference/ https://docs.docker.com/reference/] [https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive] [https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5 https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5] [https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik] [https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9 https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9] 3154ffa589a3c400a226d8654c4d722123364152 3089 3088 2022-05-19T02:11:16Z Satria 1 /* Manuelle Installation */ wikitext text/x-wiki Dieser Artikel dient einem ersten Eindruck in und einem Grundverständnis für Docker. == Was ist Docker? == Kurz und bündig: Docker ist eine Form der Virtualisierung, bei der aber keine komplette Maschine erzeugt wird (wie z.B: bei VMWare), sondern nur eine Art Sandbox, die direkt Ressourcen vom Hostsystem verwendet. Das ist sehr viel schneller als eine komplette VM zu starten. Docker basiert auf Linux. Bei "Docker for Windows" sieht es daher doch so aus, dass per Hyper-V eine komplette Linux-VM erzeugt wird (automatisch bei der Installation), in der Docker dann läuft. Was beim Umschalten auf Windows-Docker passiert, weiß ich zum derzeitigen Zeitpunkt nicht. Die Auswahl an fertigen images wird hier auch geringer sein als bei den nativen Linux images. Update: Mit der Integration von '''WSL 2''' in Windows 10 / Server 2019 ab build 1903 ist Hyper-V für Docker nicht mehr nötig. Mit WSL 2 gibt es eine native Linuxschicht in Windows, die Docker noch schneller und ressourcenschonender macht. === Und wie muss man sich das vorstellen? === Docker wird zunächst grundsätzlich per CLI bedient. Die binaries für die Bedienung liegen bei Docker for Windows als echte Windows .exe Dateien vor. Über den Befehl <pre>docker pull | build | run | start | stop | kill | rmi | tag | ...</pre> können sog. Images vom docker hub (community driven) heruntergeladen und verwendet, gestartet, gestoppt, getagged, gelöscht und neue Images gebaut werden. Z.B. möchte man ein Docker image mit Java haben, um sein eigenes Java-Tool darin laufen zu lassen. Dann könnte man mit <pre>docker pull openjdk:8u181-jre-slim-stretch</pre> ein Image ziehen, das ein Linux enthält und eine Java runtime. Dieses Image liegt nach dem download lokal im Docker repository und ist zunächst aber nicht aktiv. Welche images heruntergeladen werden können und wie sie heißen (hier openjdk:8u181-jre-slim-stretch), ermittelt man auf [https://hub.docker.com/ https://hub.docker.com/] Ob es selber gestartet werden kann, und was dabei passiert hängt vom image ab. Dieses image würde man eher as Basis-image zum Bau eines eigenen verwenden. Das geht mit dem Befehl <pre>docker build</pre> Dieser Befehl sucht im aktuellen Verzeichnis nach einer Datei <code>dockerfile</code>, die Definitionen enthält, wie das neue image zu bauen ist ([https://docs.docker.com/engine/reference/builder/ https://docs.docker.com/engine/reference/builder/]) Im Wesentlichen gibt man an, von welchem image man ausgehen möchte (FROM), was man hinzufügen möchte (ADD oder COPY) und was beim Start des images ausgeführt werden soll (CMD). <pre>FROM openjdk:8u181-jre-slim-stretch COPY dist/myTool.jar /usr/bin/ CMD java -jar /usr/bin/myTool.jar</pre> Wird das image auf diese Art gebaut, kann man es später mit <pre>docker run <imageName or ID></pre> ausführen. Ein image, das gerade ausgeführt wird, nennt man container, oder vielmehr wird ein container basierend auf dem image erzeugt. Er ist quasi die laufende Instanz des images. Es können prinzipiell beliebig viele container eines images parallel gestartet werden. Welche container gerade laufen oder glaufen sind, sieht man mit <pre>docker ps -a</pre> == Dockerfile == === ADD / COPY === Zwischen ADD und COPY besteht ein feiner Unterschied. Während COPY einfach nur kopiert, würde ADD normale Dateien auch kopieren, aber bekannte Archive (.tar, ...?) stattdessen entpacken. Der zweite Parameter ist der Zielort, der ggf. im selben Schritt erstellt wird. === RUN / CMD === RUN führt Befehle IM image zum build-Zeitpunkt aus. Man kann hier z.B. apt-get tasks unterbringen, um im image Software nachzuinstallieren. CMD führt den nachfolgenden Befehl jedes Mal (im container) aus, wenn ein image gestartet wird. == Volumes == Volumes sind Dateipfade des Hostsystems, die in den container hinein gelinked werden können wie mount points. Somit kann ein Austausch zwischen container und Hostsystem stattfinden. Das geschieht beim Starten des containers: <pre>docker run <image name or ID> --volume \Hostpfad:/Containerpfad</pre> Zu ermitteln, welche volumes in einem container gemounted sind, geht mit diesem Befehl: <pre>docker inspect -f {{ .Mounts }} <ContainerID></pre> == Hardwarewechsel == Eine negative Erfahrung beim Wechsel der Hardware (neuer Laptop, alte SSD): Docker startete nicht mehr. Irgendein Problem mit Hyper-V. Hyper-V ließ sich aber auch nicht deinstallieren, um es dann neuzuinstallieren. Beim Deinstallationsprozess wollte Windows neustarten, meldete dann einen Fehler und meinte, die Änderungen würden rückgängig gemacht - Hyper-V war noch da. Es gab keine Lösung außer einer Neuinstallation. '''Also: Vermutlich sollte man sowohl Docker als auch Hyper-V sauber deinstallieren, dann Platte und BS auf die neue Hardware bringen und dort Hyper-V und Docker wieder installieren.''' == Docker verschieben == '''Diese Beschreibung bezieht sich auf Docker unter WSL 2 (ab Windows 10 1903)''' Möchte man Platz auf Laufwerk C: sparen und Docker verschieben, muss man 2 Dinge tun: #Die 2&nbsp;WSL Distributions, die Docker angelegt hat verschieben. #Das Installationsverzeichnis von Docker verschieben und den Dienst anpassen. === WSL Distributionen verschieben === Ich weiß nicht, ob Windows da etwas mitbringt, aber es gibt ein Tool, das WSL sehr gut managen kann: [https://github.com/DDoSolitary/LxRunOffline LxRunOffline]. Docker legt 2 Distributionen an, die man mit <pre>lxrunoffline l</pre> abfragen kann: docker-desktop<br/> und<br/> docker-desktop-data Informationen, z.B. über Speicherort erhält man mit: <code>lxrunoffline sm -n docker-desktop</code> Verschieben lassen sich beide Distributionen per: <pre> lxrunoffline m -n docker-desktop -d <Zielverzeichnis1> und lxrunoffline m -n docker-desktop-data -d <Zielverzeichnis2> </pre> === Docker-Installationsverzeichnis === Man beendet Docker Desktop und beendet den Docker-Dienst. Dann verschiebt man das gesamte Docker-Verzeichnis (C:\Program&nbsp;Files\Docker) zum gewünschten Ort (<Zielverzeichnis>) und führt dann aus: <pre>sc config com.docker.service binPath="<Zielverzeichnis>\Docker\com.docker.service.exe"</pre> Docker-Dienst und Docker-Desktop starten, und alles sollte jetzt funktionieren. == Docker Installation == Wenn <u>nicht</u> '''Docker Desktop''' verwendet weren soll (ab Version 4 ist diese Software unter gewissen Umständen kostenpflichtig), dann sind ein paar manuelle Schritte nötig, um Docker zu installieren. Voraussetzung: Die Virtualisierungsplattform ist aktiviert. (Windows-Features: "Plattform für virtuelle Computer") ggf. hilft das Kommando: <code>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</code> #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]).<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Linux starten (Kommando <code>ubuntu</code>) #Beim ersten Start soll ein Benutzer erstellt werden. Wir nennen ihn hier exemplarisch ''docker'' mit Passwort ''docker''. #Sicherstellen, dass ''docker'' ein superuser ist: <code>sudo grep -E 'sudo' /etc/group</code> Hierbei sollte so eine Zeile wie ''sudo:x:27:docker'' herauskommen. Wenn nicht, muss das hier ausgeführt werden: <code>usermod -aG sudo docker</code>, wobei docker der Benutzername ist, den wir in Schritt 4 erstellt haben. #System aktualisieren: <code>sudo apt update && sudo apt upgrade</code> #Ein paar Umgebungsvariablen setzen: <code>source /etc/os-release</code> #Dem Docker Repo vertrauen: <code>curl -fsSL [https://download.docker.com/linux/${ID}/gpg https://download.docker.com/linux/${ID}/gpg] | sudo apt-key add -</code> #Repo Info aktualisieren: <code>echo "deb [arch=amd64] [https://download.docker.com/linux/${ID} https://download.docker.com/linux/${ID}] ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list</code> #apt aktualisieren: <code>sudo apt update</code> #Docker installieren: <code>sudo apt install docker-ce docker-ce-cli containerd.io</code> #Den aktuellen User zur Gruppe ''docker'' hinzufügen: <code>sudo usermod -aG docker $USER</code> #Jetzt kann der Docker Deamon gestartet werden: sudo dockerd -H 127.0.0.1<br/> Dabei wird am Ende ein Socket gemeldet, z.B.: ''API listen on 127.0.0.1:2375''<br/> '''Hierfür muss Linux Distro mit Adminrechten gestartet werden!''' #Dieser Socket sollte im Windows Hostsystem in die DOCKER_HOST Variable geschrieben werden in der Form <code>tcp://127.0.0.1:2375</code>. #In Windows wird dann das Docker CLI ([https://github.com/StefanScherer/docker-cli-builder/releases https://github.com/StefanScherer/docker-cli-builder/releases]) heruntergeladen und an beliebiger Stelle platziert.<br/> Integration in den PATH und schon ist <code>docker.exe</code> aufrufbar. #Um das Benutzerpasswort nicht immer eingeben zu müssen, kann den Benutzern der Gruppe ''docker'' das Ausführen von dockerd ohne Passwort erlaubt werden. Dazu wird dieser Befehl aufgerufen: <code>sudo visudo</code> und diese Zeilen ergänzt: <code>%docker ALL=(ALL) NOPASSWD: /usr/bin/dockerd</code> #Ab jetzt kann von Windows aus (z.B. über die Aufgabenplanung) das asynchrone Kommando abgesetzt werden, um den Docker-Deamon im Hintergrund zu starten: <code>wsl sh -c "nohup sudo -b dockerd -H 127.0.0.1 > /mnt/wsl/docker.log"</code> === Manuelle Installation === Wenn man die Linux Distribution nicht über die Ubuntu App aus dem Windows Store installieren möchte oder aber einfach nur das Installationsverzeichnis anpassen will, müssen die Schritte 1-4 etwas anders aussehen: #WSL 2 installieren (ab Windows 1903) #WSL 2 als Standardversion für neue Distributionen setzen! <code>wsl --set-default-version 2</code> #Linux Distribution für WSL installieren über den MS Store. Am besten Ubuntu 20.04 LTS ([https://www.microsoft.com/store/productId/9NBLGGH4MSV6 https://www.microsoft.com/store/productId/9NBLGGH4MSV6]). '''Wir benötigen hier nur das GZip Archiv!'''<br/> Die weiteren Schritte enthalten nicht immer alle nötigen Schritte für andere Distributionen! #Im Ordner ''C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc'' sollte sich jetzt eine Datei ''install.tar.gz'' liegen.<br/> Also führt man den Befehl aus: <code>wsl --import <Name> <Zielverzeichnis> C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2021.825.0_x64__79rhkp1fndgsc\install.tar.gz --version 2</code> #Ist Linux dann installiert, startet man diese Instanz mit <code>wsl -d <Name></code> (ggf. ist <Name> auch der Default, dann genügt: <code>wsl</code> #Man erstellt einen nicht-root Benutzer mit <code>adduser docker</code> Ab hier geht es mit dem obigen Schritt 6 weiter. Außerdem kann man per Regedit jetzt den neuen Benutzer, der die ID 1000 haben sollte, als Default-Benutzer eintragen: ''HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{Instanz-CLSID}\DefaultUid = 1000 (Dezimal)''<br/> Als weitere Registrymodifikation kann man den REG-SZ Wert <code>KernelCommandLine</code> auf ''BOOT_IMAGE=/kernel init=/init'' setzen (wie bei der automatischen Installation), da sonst defaultmäßig ''BOOT_IMAGE=/kernel init=/init ro'' angenommen wird. Was der Unterschied ist, kann ich leider nicht sagen, ich habe diesen einfach erst mal festgestellt. Aufpassen muss man jetzt bei Mounted Volumes ins Windows-Dateisystem. Diese funktionieren unter Docker Desktop mit lokalen Pfadangaben wie <code>-v D:\Ordner1\Ordner2:/tmp</code> jetzt aber muss man <code>-v /mnt/d/Ordner1/Ordner2:/tmp</code> schreiben! === Verbindungen aus dem Container zum Host === In einem Briged Network kann aus dem Container heraus natürlich nicht per "localhost" auf den Host zugegriffen werden. Man muss den Container mit dem Parameter <code>--add-host host.docker.internal:host-gateway</code> starten, damit <code>host.docker.internal</code> zum Host führt. == VMWare == Auch wenn Hyper-V nicht installiert sein muss, erfordert WSL2 den Hypervisor, der normalerweise als Startparameter im Bootmanager von Windows aktiviert ist. Möchte man VMWare verwenden, muss dieser deaktiviert werden und Windows neu gestartet werden! <code>bcdedit /set hypervisorlaunchtype off</code> Möchte man wieder WSL2 verwenden, aktiviert man ihn wieder und startet neu: <code>bcdedit /set hypervisorlaunchtype Auto</code> == Quellen == [https://docs.docker.com/reference/ https://docs.docker.com/reference/] [https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive https://www.cloudmanav.com/tools/moving-docker-desktop-another-drive] [https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5 https://forums.docker.com/t/how-could-i-install-docker-for-windows-on-drive-e-my-ssd-c-is-full/52347/5] [https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik https://dev.to/_nicolas_louis_/how-to-run-docker-on-windows-without-docker-desktop-hik] [https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9 https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9] 3c7b715d34d69efff4260cfc456819b6bd29aeab MotionEyeOS 0 2656 3090 3059 2022-07-10T02:56:34Z Satria 1 /* Was ist MotionEyeOS */ wikitext text/x-wiki == Was ist MotionEyeOS == Es handelt sich um eine Webanwendung, die für verschiedene Hardware-Plattformen bereitgestellt wird, unter Anderem auch für den Raspberry PI 3, was sie sehr interessant macht. Denn diese Webanwendung stellt eine kostenlose Videoüberwachungs-Zentrale dar, an die man mehrere Kameras anschließen bzw. IP Kameras konfigurieren kann, deren Bild- und Videomaterial dann hiermit verwaltet werden. Das schließt ganz besonders auch MotionDetection mit ein. == SSH == === Login mit RSA key === Der public key des RSA-Schlüsselpaars muss nach <pre>/data/etc/ssh_authorized_keys</pre> gespeichert werden. == Konfiguration ohne UI == === Startup Skript === Eine Datei <pre>in /data/etc/userinit.sh</pre> wird beim Booten ausgeführt. === Motion Detection ein/ausschalten === Wenn man nach einer Möglichkeit sucht, die Bewegungserkennung und die daran gekoppelte Alarmbildgenerierung automatisiert ein- oder auszuschalten, muss zunächst die Webschnittstelle des tools "motion" im LAN verfügbar machen, denn sie ist auf localhost beschränkt: Per SSH editiert man die Datei <pre>/data/etc/motion.conf</pre> und verändert hier den Wert <pre>webcontrol_localhost on</pre> zu <pre>webcontrol_localhost off</pre> Speichern und über die Weboberfläche sofort neustarten, ohne hier weitere Änderungen zu machen und anzuwenden. Danach ist motion über den Port 7999 konfigurierbar, und zwar wie folgt, wobei raspi die Adresse oder der Name des Raspberrys ist und 1 die Nummer der konfigurierten Kamera, um die es gerade geht: ;<nowiki>http://raspi:7999/1/detection/status</nowiki>: Gibt den Status der Bewegungserkennung aus. ;<nowiki>http://raspi:7999/1/detection/start</nowiki>: Aktiviert die Bewegungserkennung. ;<nowiki>http://raspi:7999/1/detection/pause</nowiki>: Pausiert die Bewegungserkennung '''Leider ist das nicht von Dauer. Irgendwie startet sich der Dienst neu mit den konfigurierten Werten!''' == SSL / HTTPS == Um den Server auf HTTPS umzustellen, sind einige manuelle Schritte nötig: # SSL Zertifikat bzw. Schlüsselpaar erzeugen:<br>z.B.: '''ssl_motioneye.key''' und '''ssl_motioneye.pem''' # Schlüsselpaar nach /data/etc kopieren. # /data/etc/motioneye.conf editieren und diese 2 Zeilen anhängen:<br>'''sslcert /data/etc/ssl_motioneye.pem'''<br>'''sslkey /data/etc/ssl_motioneye.key''' # 2 Quelldateien herunterladen:<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> server.py<br>[https://github.com/ccrisan/motioneye/tree/master/motioneye Motioneye@github] --> settings.py # settings.py editieren. Am Ende hinzufügen:<br>'''SSLCERT = "/data/etc/ssl_motioneye.pem"'''<br>'''SSLKEY = "/data/etc/ssl_motioneye.key"''' # server.py editieren. Oben zu den import Statements:<br>'''from tornado import httpserver'''<br>Dann die Zeile<br>'''application.listen(settings.PORT, settings.LISTEN)'''<br>ersetzen mit:<br> <code><poem> if os.path.exists(settings.SSLCERT) and os.path.exists(settings.SSLKEY): http_server = httpserver.HTTPServer(application,ssl_options={ "certfile": settings.SSLCERT, "keyfile": settings.SSLKEY, }) http_server.listen(settings.PORT) else: application.listen(settings.PORT, settings.LISTEN) </poem></code> Ergebnis: Es funktioniert, aber in der motioneye.log finden sich hunderte Fehler, die auch dazu führen, dass der Server sich ständig neu startet. === nginx als reverse proxy === Eine weitaus vielversprechendere Methode ist es, einen einfachen nginx Webserver, konfiguriert als reverse proxy, in das MotionEyeOS Linux zu integrieren. Das Schwierige hier ist, dass dieses Linux nicht mal über apt-get verfügt, das heißt: Handarbeit! Ich habe auf einem Raspbian Stretch per "apt-get install nginx" das Paket installiert und mir alles herausgezogen, was nötig ist, um es auf MotionEyeOS laufen zu lassen, was erstaunlich wenig ist. Die Struktur der benötigten Dateien schaut so aus: <code><poem> /data/etc/userinit.sh (Das ist das Skript, mit dem man nginx (und andere tools) beim booten starten kann) /etc/init.d/S86nginx /etc/nginx/nginx.conf /etc/nginx/* (Unter den übrigen Dateien hier gibt es sicher einige überflüssige, aber sie stören nicht) /usr/lib/libpcre.so.3.13.3 -> /usr/lib/libpcre.so.3 /usr/sbin/nginx /var/lib/nginx/ (Ordner muss nur angelegt werden) /var/log/nginx/ (Ordner muss nur angelegt werden) </poem></code> Die '''/etc/nginx/nginx.conf''' sieht nur so aus: <code><poem> include /data/etc/nginx.conf </poem></code> damit dort die richtige Konfiguration liegen kann. Das erleichtert die Administration, denn /etc ist normalerweise schreibgeschützt gemounted. Die '''/data/etc/userinit.sh''' sieht so aus: <code><poem> /etc/init.d/S86nginx start </poem></code> Wenn jetzt die /data/etc/nginx.conf korrekt ist, hat man beim booten einen https nginx webserver, der alles zu MotionEye weiterleitet :) Das nginx-Paket habe ich hier zum Download. Es fehlt nur die userinit.sh, da die von meinem Paket nicht überschrieben werden soll, falls sie schon existiert. [[Datei:Nginx-for-motioneyeos.7z]] Um dieses TAR auf den Raspi zu übertragen, muss man sich an einer SSH Konsole anmelden und das root filesystem beschreibbar remounten: <pre>mount -o remount,rw /</pre> Danach mit einem SFTP Client (z.B. Filezilla) das TAR nach / übertragen und zurück auf der Konsole entpacken: <pre>tar -xvf nginx-for-motioneyeos.tar</pre> == Quellen == https://github.com/ccrisan/motioneyeos http://www.lavrsen.dk/foswiki/bin/view/Motion/MotionHttpAPI 177b1104b2904cd74492d81549479e021b7cfc20 FreePBX 0 2648 3092 2923 2022-11-24T02:41:19Z Satria 1 /* Trunk Konfiguration */ wikitext text/x-wiki Tipps und Tricks rund um Asterisk (VoIP / Trunk Software), FreePBX (GUI für Asterisk) und Raspbx (Raspberry PI 3 Portierung von FreePBX) == Generelles Verständnis == Asterisk ist vereinfacht gesagt ein VoIP Client und Server zugleich. Es baut eine Verbindung zum SIP Provider auf, von dem man seine Telefonnummern erhält und stellt gleichzeitig SIP Zugänge für die anzuschließenden Telefone bereit. === Begriffe === ;Trunk:SIP Provider im Internet ;Extension:Die Nebenstelle oder der Benutzer, der an Asterisk angeschlossen werden soll mit eigener Durchwahl. ;User:Benutzer, die sich am WebUI anmelden können. Können mit Nebenstellen verknüpft werden. ;Outbound Routes:Regeln, die beim Wählen einer Nummer durch eine Nebenstelle entscheiden, welcher Trunk verwendet werden soll. ;Inbound Routes:Regeln, die bei ankommenden Gesprächen entscheiden, auf welche Neben stelle das Gespräch weitergeleitet werden soll, also auch welches Telefon klingeln soll. ;DID / DDI:Direct Inward Dialing / Direct Dial In. Bezeichnet das Prinzip, dass die gewählte Nummer an die PBX Zentrale übergeben wird, um dort das Routing auf die Endgeräte vornehmen zu können. == Trunk Konfiguration == Die Provider können Daten erwarten, die voneinander leicht abweichen. Als recht universell haben sich die Werte von/für toplink-xpress herausgestellt: === Allgemeines === Asterisk bedient sich für das Registrieren beim VoIP Anbieter (für eingehende Telefonate) eines sog. Register-Strings, der sich aus Logindaten, dem Server und ggf. anderen Parametern zusammensetzt. ;Er hat dieses Format: :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]</code> :oder :<code>[peer?][transport://]user[@domain][:secret[:authuser]]@trunkname[/extension][~expiry]</code> ;In den meisten Fällen setzt er sich lediglich so zusammen :<code>user:secret@host[:port][/user]</code> :oder :<code>user:secret@trunkname[/user]</code> === Trunk Parameter allgemein === ;qualify=yes :means that your system will periodically send a request that the other system identify itself ;net=yes :tells Asterisk that the system you are communicating with is or may be behind a NAT, and that Asterisk should ignore the IPAddress in the from line and instead use the IP address that the packets actually come from ;keepalive=30 "30" is the number of seconds that Asterisk will wait between sending keepalive messages. Keepalive messages are important if you are behind a NAT firewall, because if the firewall closes the port, you may not receive all incoming calls === Toplink === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">toplink</span> ;PEER Details :type=peer :username=<username> :secret=<password> :insecure=port,invite :host=sip.toplink-xpress.de :fromuser=<username> :fromdomain=sip.toplink-xpress.de Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@sip.toplink-xpress.de/<username> :Alternativ: <username>:<password>@<span style="color:#ff8c00">toplink</span>/<username> === o2 === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">alicesip</span> ;PEER Details :type=peer :username=<Vollständige Rufnummer ohne +> :secret=<password> :insecure=port,invite :host=sip.alice-voip.de :fromuser=<Vollständige Rufnummer ohne +> :fromdomain=sip.alice-voip.de :qualify=no :caninvite=no :canreinvite=no :context=public :keepalive=120 Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">alicesip</span>/<span style="color:#8080FF">EXT</span>~1800 <span style="color:#8080FF">EXT</span> steht hier für die Extension-Nummer, auf der es klingeln soll. o2 liefert keine DID mit, so dass man Inbound Rules verwenden könnte, um den Anruf zu leiten, sondern man legt im Register-String bereits fest, an welcher Extension der Anruf eingehen soll. Noch dazu muss diese Extension im [public] Context definiert sein! Hierzu muss man sich auf per SSH auf den Raspbx begeben und die Datei <code>/etc/asterisk/extensions_custom.conf</code> editieren mit dem Inhalt: <code><poem> [public] include => from-trunk </poem></code> Jetzt werden Anrufe im Context [public] genauso behandelt wie andere externe, landen aber auf der Extension <span style="color:#8080FF">EXT</span>. Wenn aber z.B. keine bestimmte Extension, sondern eine Gruppe klingeln soll, muss man sich eine Art "Dummy"-Extension (z.B. 99) anlegen, die man dann so konfiguriert, dass sie alle Anrufe direkt umleitet auf das gewünschte Ziel. Hier kann das Modul "Follow Me" behilflich sein. === Fonial === Die '''Outgoing''' Parameter: ;Trunk Name:<span style="color:#ff8c00">fonial</span> ;PEER Details :type=friend :host=sip.alice-voip.de :username=<Benutzername> :secret=<Passwort> :fromdomain=sip.plusnet.de :nat=force_port,comedia :qualify=yes :insecure=port,invite :canreinvite=no Die '''Incoming'''-Parameter: ;USER Context:<leer> ;USER Details:<leer> ;Register String :<username>:<password>@<span style="color:#ff8c00">fonial</span>/<Vollständige Rufnummer mit +> Bei Fonial ist die Besonderheit, dass der letzte Teil des Register-Strings bei einem Anruf als DID mitgegeben wird. Man muss hier also die vollständige Rufnummer eintragen (und nicht den Benutzernamen, wie auf der fonial website), um eingehende Routen auf Basis der angerufenen Nummer definieren zu können. == Inbound Routes == Diese Regeln leiten die Anrufe an die korrekten Nebenstellen weiter. Es muss für jede extern erreichbare Nummer jeweils eine Inbound Route geben, in der die DID (komplette externe Nummer) gesetzt ist. "Set Destination" bestimmt dann die Nebenstelle, an die der Anruf gehen soll. Für interne Anrufe muss es eine Inbound Route geben, in der die CID mit der internen Nebenstellennummer gesetzt ist und ebenfalls unter "Set Destination" die gewünschte Nebenstelle. == Outbound Routes == Eine Outbound Route wird anhand der gewählten Nummer aktiviert. Das "Dial Pattern" bestimmt, wie die gewählten Nummern erkannt und ggf. modifiziert werden. Ein Pattern gilt dann als erfüllt, wenn <code>prefix</code> und <code>[match pattern]</code> mit der Nummer übereinstimmen. Danach wird allerdings <code>prefix</code> von der <code>Nummer</code> entfernt und <code>(prepend)</code> vorangestellt. === Default outgoing === So möchte man z.B., dass lokalen Nummern die Ortsvorwahl vorangestellt wird. Lokale Nummern beginnen hier in D. mit einer Zahl größer 1. Dafür steht der Buchstabe N. Gefolgt von beliebigen und beliebig vielen weiteren Nummern. Hierfür steht der Punkt. Daraus ergibt sich bei der Ortsvorwahl 02206 das folgende Pattern: <code>(+492206) | [N.]</code> => Es wird nichts entfernt, aber +492206 vorangestellt. Aus 80105 wird so +49220680105 Aus Nummern, die mit Vorwahlen (also einer 0) beginnen, möchte man das Internationale Format machen. Das ist dann dieses Pattern: <code>(+49) 0 | [Z.]</code> => Greift bei einer beliebigen Nummer, die mit 0 beginnt und mit 1...9 weitergeht, entfernt die 0 und setzt +49 davor. Aus 0220680105 wird so: +49220680105. Aber auch beim internationalen Format soll unsere Regel greifen. Dafür sorgt dieses Pattern: <code>() | [+Z.]</code> => Greift bei allen international formatierten Nummern und verändert nichts. === Internal === Werden 3-stellige Nummern gewählt, die mit 2 beginnen (110 und 112 müssen ausgehende Nummern sein!), soll das Gespräch intern geroutet werden. Dafür legt man eine eigene Route an, markiert sie als Intra-Company, ohne Trunk und legt das folgende Pattern dort an: <code>() | [NXX]</code> => Greift bei allen 3-stelligen Nummern, die mit einer Zahl größer als 1 beginnen. === Special numbers === Sondernummern sind Notfallnummern, aber auch die Auskunft usw. Diese beginnen mit einer 1, ihnen soll aber nicht die Ortsvorwahl vorangestellt werden. Daher legt man eine neue Route an, markiert sie mit Emergency und legt das folgende Pattern an: <code>() | [[1].]</code> => Greift bei allen beliebig langen Nummern, die mit einer 1 beginnen. == Email == Die Email-Konfiguration kann über die Oberfläche nur vorgenommen werden, wenn man "Sysadmin Pro" erworben hat. Ansonsten muss man das auf der Shell manuell tun: === Methode 1 === (Funktioniert bei mir nicht, da /etc/postfix schon nicht vorhanden ist) <poem> <ins>edit /etc/postfix/main.cf:</ins> <code>relayhost = SMTP server address smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic</code> </poem> <poem> <ins>edit /etc/postfix/sasl_passwd:</ins> <code>relayhost username:password</code> </poem> <poem> <ins>execute:</ins> <code>postmap hash://etc/postfix/sasl_passwd</code> </poem> <poem> <ins>edit /etc/postfix/generic:</ins> <code><source> <real_email_address@real-comain.tld> ...</code> </poem> <poem> <ins>execute:</ins> <code>postmap /etc/postfix/generic</code> </poem> <poem> <ins>do a postfix reload:</ins> <code>service postfix restart</code> </poem> === Methode 2 === # Per SSH wird dieser Befehl ausgeführt:<br><code>dpkg-reconfigure exim4-config</code><br>In dem Setup alle Einstellungen so belassen, wie sie sind, außer bei der Frage nach "IP address or the host name of a mail server". Hier die SMTP-Adresse eintragen! # In die Datei <code>/etc/exim4/passwd.client</code> am Ende die Zeile einfügen:<br><code>SMTP_HOSTNAME:USERNAME:PASSWORD</code><br>dabei natürlich die echten Werte einsetzen! # In die Datei <code>/etc/email-addresses</code> am Ende diese Zeilen einfügen:<br><code>root: from@server.de</code><br><code>asterisk: from@server.de</code><br>dabei wieder die echten Werte einsetzen! # Befehl <code>update-exim4.conf</code> ausführen! # Testen: <code>send_test_email target@server.de</code> == Update == Updates über das FreePBX WebUI sollten in der folgenden Reihenfolge vorgenommen werden: #FreePBX Framework. Danach Apply Config #Core. Danach Apply Config #Process Management. Danach Apply Config #Restliche Module. Danach Apply Config und Neustart. === Tampered Files === Wenn im Dashboard eine Meldung erscheint, die von "tampered files" erzählt, müssen über SSH diese Befehle ausgeführt werden: <code><poem> amportal chown amportal a ma refreshsignatures amportal a reload </poem></code> == Backup directory placeholders == ;__AMPWEBROOT__:/var/www/html ;__ASTETCDIR__:/etc/asterisk ;__AMPSBIN__:/usr/sbin ;__ASTVARLIBDIR__:/var/lib/asterisk ;__ASTSPOOLDIR__:/var/spool/asterisk:In diesem Verzeichnis befindet sich auch das "backup"-Verzeichnis selbst, in dem die Backups abgelegt werden. == Quellen und Tutorials == [https://rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk rogermayer.info/asterisk-konfiguration-fur-toplink-xpress-sip-trunk] [https://www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten www.toplink-xpress.de/wie-kann-ich-meinen-ip-anschluss-an-einer-asterisk-basierten-anlage-einrichten] [https://www.voip-info.org/asterisk-config-sipconf www.voip-info.org/asterisk-config-sipconf] [https://wiki.freepbx.org/display/FPG/PBX+GUI+Home wiki.freepbx.org/display/FPG/PBX+GUI+Home] [https://www.youtube.com/watch?v=77KzDLij8eQ www.youtube.com/watch?v=77KzDLij8eQ] [https://wiki.freepbx.org/display/PPS/Setup+Postfix+Manually wiki.freepbx.org/display/PPS/Setup+Postfix+Manually] [http://www.raspberry-asterisk.org/documentation/#email www.raspberry-asterisk.org/documentation/#email] [https://www.elektronik-kompendium.de/sites/net/0905121.htm Elektronik-Kompendium - Audio-Codecs zur Sprachdigitalisierung] [https://forums.whirlpool.net.au/archive/2688065 forums.whirlpool.net.au/archive/2688065] 3af700d90a0611def42a181a98a111912788818c SeedDMS 0 2655 3093 2975 2022-12-29T05:00:24Z Satria 1 Updated links wikitext text/x-wiki == Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP, MySQL und Javascript. https://www.seeddms.org == SeedDMS auf ZyXEL NAS == Gleich vorweg: Es gehört einiges dazu, SeedDMS auf dem Linux eines ZyXEL NAS laufen zu lassen! Aber der integrierte PHP-fähige Webserver kann dazu verwendet werden, mit SeedDMS ein Dokumentenmanagementsystem aufzusetzen, ohne Cloud und Internet, das - wenn man will - aber trotzdem von überall erreichbar ist. Auch stellt das hier keine Anfängeranleitung dar. Ich setze voraus, dass man mit der Administration des NAS und seinem Netzwerk vertraut ist. === Grundlagen === ==== Web-Publishing mit HTTPS ==== Damit der integrierte Webserver Inhalte von Freigaben als Webinhalte darstellt, müssen wir das <span style="color:orange;">'''Web-Publishing'''</span> aktivieren. Wer dabei eine erhöhte Sicherheit für seine Login-Daten haben möchte, aktiviert außerdem HTTPS. ==== Neue Freigabe mit Webfreigabe ==== Am besten ist es, man erstellt auf dem NAS eine eigene Freigabe, z.B. <span style="color:orange;">'''dms'''</span> und gibt dem Benutzer die nötigen Berechtigungen, mit dem wir hier die Installation vornehmen wollen. Bei dieser Freigabe muss die <span style="color:orange;">'''Webfreigabe'''</span> aktiviert sein ('dms' auf Web veröffentlichen). Damit nun aber nicht jeder den Verzeichnisinhalt dieser Freigabe sehen kann, erstellen wir darin eine Datei <span style="color:orange;">'''.htaccess'''</span> mit dem Inhalt: <pre>Options -Indexes</pre> Jetzt landet man mit einem Browser unter <span style="color:orange;">https://NAS:5001/MyWeb/dms</span>, kann aber nichts sehen, weil noch keine Startseite erstellt wurde. Aus dem Internet ist diese Seite dann über ein <span style="color:orange;">Portforwarding</span> oder über ein <span style="color:orange;">VPN</span> erreichbar. ==== Aktivierter SSH-Zugang ==== Wir kommen nicht umher, einige Dinge direkt auf dem Linux zu erledigen, und brauchen daher einen aktivierten <span style="color:orange;">SSH Zugang</span> zum NAS und einen SSH-Client, wie z.B. PuTTY. === SeedDMS vorbereiten === ==== Herunterladen und entpacken ==== SeedDMS ist frei verfügbar und kann [https://www.seeddms.org/index.php?id=7 hier] heruntergeladen werden. Im Prinzip muss es nur auf die dafür vorgesehene Freigabe (dms) entpackt werden. Am besten geht das, wenn man das .tar auf die Freigabe kopiert, und den Rest in der SSH Shell erledigt, weil dann die links erhalten bleiben, was wichtig ist! Am Ende sollte das Ganze Paket ohne unnötige Unterordner auf der Freigabe liegen, so dass die Ordner wie 'data' und 'www' etc. direkte Unterordner der Freigabe sind. <pre>tar -xvf seeddms-quickstart-5.1.12.tar</pre> zum Entpacken und dann noch wie gewünscht verschieben: <pre>mv seeddms51x/* .</pre> ==== PHP ==== SeedDMS ist der Meinung, es braucht PHP Version <span style="color:orange;">5.6.38</span>, aber auf meinem NAS mit PHP Version <span style="color:orange;">5.5.22</span> läuft es auch, man muss sich nur durch die Installation mogeln ;) Dazu wird folgende Datei verändert: <ins>/inc/inc.ClassSettings.php</ins> <pre>if (version_compare(PHP_VERSION, '5.6.38') < 0) {</pre> austauschen gegen: <pre>if (version_compare(PHP_VERSION, '5.5.22') < 0) {</pre> ==== MySQL ==== Es muss eine <span style="color:orange;">MySQL Datenbank</span> bereitgestellt werden, auf die SeedDMS Zugriff erhält. ==== SeedDMS konfigurieren ==== Vor der Installation muss man die Datei /conf/settings.xml an die Gegebenheiten des NAS anpassen, was absolute Pfade auf dem Dateisystem (/i-data/...) und relative Pfade im Browser (/MyWeb/dms/...) angeht und auch die Benutzerdaten für die Datenbank. Um eine Browserinstallation zu ermöglichen, muss noch die Datei <span style="color:orange;">conf/ENABLE_INSTALL_TOOL</span> angelegt werden, die nach der Installation unbedingt wieder gelöscht werden muss! === SeedDMS installieren === Jetzt kann man SeedDMS über den Browser installieren: <span style="color:orange;"><nowiki>https://NAS:5001/MyWeb/dms/www/install/install.php</nowiki></span> == Tesseract OCR und Ghostscript auf ZyXEL NAS == Damit aus dem schönen Dokumentenmanagementsystem auch etwas richtig schickes wird, sollte man es um eine OCR (Optical Character Recognition) erweitern. Hierzu eignet sich das freie tool <span style="color:orange;">tesseract</span>. Es kann Texte aus Bilddateien herauslesen, die dann von SeedDMS in der Datenbank als Schlüsselbegriffe für die Volltextsuche gespeichert werden. PDFs müssen zuerst in eine Grafik (z.B. TIFF) umgewandelt werden, und können dann mit tesseract gescannt werden. Für die Umwandlung verwende ich <span style="color:orange;">Ghostscript</span>. Aber sowohl tesseract als auch Ghostscript müssen für das Linux auf dem NAS selber gebaut / kompiliert werden. Das Linux auf dem NAS eignet sich aber kaum dafür, da es nicht mal apt-get gibt und so die dependencies mühsam manuell installiert werden müssten. === Raspberry Pi 3 als build machine === Ein <span style="color:orange;">Raspberry Pi 3</span> mit Raspbian eignet sich hervorragend zum Bauen der erforderlichen tools, weil die Hardware ähnlich ist und die gebauten binaries auf dem NAS lauffähig sind! Man kann hier dieser [https://github.com/tesseract-ocr/tesseract/wiki/Compiling Anleitung] folgen. Im Wesentlichen muss Folgendes passieren: # sudo apt-get update # sudo apt-get install g++ # sudo apt-get install autoconf automake libtool # sudo apt-get install pkg-config # sudo apt-get install libpng-dev # sudo apt-get install libjpeg8-dev # sudo apt-get install libtiff5-dev # sudo apt-get install zlib1g-dev # sudo apt-get install libleptonica-dev # [https://github.com/tesseract-ocr/tesseract tesseract] und [https://github.com/ArtifexSoftware/ghostpdl Ghostscript] sources holen und auf den Raspberry bringen. Im <span style="color:orange;">tesseract</span> Verzeichnis: # ./autogen.sh # ./configure --prefix=/i-data/sysvol/dms/tools # make # make install Das baut und installiert tesseract in das Verzeichnis <ins>tools</ins>, damit wir es gesondert packen und wegholen können. Beim Ausführen auf dem NAS merkt man jedoch, dass dort einige libraries fehlen. Also holen man sich diese noch dazu: * liblept.so.5 * libgomp.so.1 * libc.so.6 * libgif.so.7 * libgomp.so.1 * libjbig.so.0 * libjpeg.so.62 * liblept.so.5 * liblzma.so.5 * libopenjp2.so.7 * libpng16.so.16 * libpthread.so.0 * libstdc++.so.6 * libtiff.so.5 * libwebp.so.6 Außerdem braucht man noch [https://tesseract-ocr.github.io/tessdoc/Data-Files Trainingsdateien] für z.B. Deutsch und/oder Englisch, was die Texterkennung verbessert. Diese müssen in .../share/tessdata kopiert werden. Jetzt kann man das tesseract bundle TAR im tools Verzeichnis bauen: <pre>tar -cvf tesseract-bundle.tar *</pre> <span style="color:orange;">Ghostscript</span> wird auf ähnliche Weise gebaut. Es empfiehlt sich, aber das <ins>tools</ins> Verzeichnis vorher zu löschen, um 2 separate Bundles machen zu können. # ./configure --prefix=/i-data/sysvol/dms/tools # make # make install Libraries hinzuzufügen ist hier nicht nötig, tesseract beinhaltet diese bereits. Für ein wirklich unabhängiges Ghostscript müsste man die natürlich wieder zusammensuchen. Jetzt kann man auch das Ghostscript TAR im tools Verzeichnis bauen: <pre>tar -cvf ghostscript.tar *</pre> === Die 2 tools aufs NAS bringen === tesseract und ghostscript werden auf dem NAS nach <ins>/i-data/sysvol/dms/tools</ins> befördert, am besten mit dem TARs, die an Ort und Stelle entpackt werden. Gestartet wird tesseract z.B. so: <pre>/i-data/sysvol/dms/tools/bin/tesseract --tessdata-dir /i-data/sysvol/dms/tools/share/tessdata -l de+eng $1 $2</pre> Analog dazu Ghostscript: <pre>/i-data/sysvol/dms/tools/bin/gs -dBATCH -dNOPAUSE -sDEVICE=tiffgray -r175 -sOutputFile=$2 $1</pre> wobei $1 jeweils die Quell und $2 die Zieldatei beinhalten. === Ein Skript, das alles kann === Richtig gut funktionert hat das Ganze erst mit einem "umfassenden" Skript, das ghostscript und tesseract geschickt ansteuert und den output an das aufrufende SeedDMS weitergibt. Hierbei sollten die eigenen Outputs der tools mit <pre>> /dev/null 2>&1</pre> ausgeblendet werden, da sie das Zurückgegebene stören. Das Resultat soll vielmehr in eine temporäre Textdatei erfolgen, deren Inhalt dann kontrolliert ans DMS übergeben wird. 311358436194ed5c4293b3082d99e9305cf17b55 Android 0 2670 3103 2023-01-28T05:45:19Z Satria 1 Die Seite wurde neu angelegt: „Tricks rund um das Betriebssystem "Android" == Gerät für Google Play registrieren ==“ wikitext text/x-wiki Tricks rund um das Betriebssystem "Android" == Gerät für Google Play registrieren == b8f9bf338f029dca54200596106bb55a8f00d688 3104 3103 2023-01-28T05:48:49Z Satria 1 wikitext text/x-wiki == Gerät für Google Play registrieren == bdfdac1b43f0fb7e5dde6f5d567f970eb97ab6a6 3105 3104 2023-01-28T16:49:47Z Satria 1 wikitext text/x-wiki == Gerät für Google Play registrieren == Gerade bei selbst aufgesetzten Geräten mit Android wie einem Raspberry PI oder ODRIOD, wird man bei der Nutzung der Google Play Dienste (https://opengapps.org/) Probleme haben, in der Form, als dass der Store eine Meldung bringt wie <pre>dieses Gerät ist nicht für die Nutzung mit Google Play zertifiziert.</pre> Auch Apps wie Netflix funktionieren dann ggf. nicht. '''Man kann aber ein solches Gerät bei Google registrieren, was die ordentliche Funktion mit den Google Diensten herstellt!''' Man benötigt dazu die Google Services Framework Geräte ID (GSF ID). Diese ist eine 8 byte Große (16 Stellen lange) Hexadezimalzahl z.B. <pre>3B7615A5D476F2B0 = 4284635897467957936</pre> Man kann diese ID aus dem Gerät auslesen aus der gservices.db Datei oder mit einer einfachen App: https://play.google.com/store/apps/details?id=com.evozi.deviceid Diese ID muss in eine Dezimalzahl umgerechnet werden und unter folgendem Link eingetragen werden: https://www.google.com/android/uncertified/?pli=1 Danach am besten das Gerät neustarten und warten, bis die Registrierung durch alle Server durch und beim Gerät angekommen ist :) b3c00ada5d409989a2503cd8a8c23d9438181e10 SSL Zertifikate 0 2632 3108 2925 2023-04-19T14:34:26Z Satria 1 wikitext text/x-wiki == OpenSSL == Mal sollte den Pfad zur openssl.exe in die PATH Umgebungsvariable mit aufnehmen. Ebenso kann es erforderlich sein, OPENSSL_CONF auf diesen Pfad zu setzen. == Eigenes Class 1 Zertifikat erstellen == === Mit eigenem CA root Zertifikat (eigener Zertifizierungsstelle) === Das OpenSource Projekt OpenSSL befähigt dazu, selbst eine CA (Certificate Authority) zu werden, Root Zertifikate und Server-Zertifikate zu erstellen. Wird im Browser das Root-Zertifikat bekannt gemacht (importiert), werden die mit dieser CA ausgestellten Zertifikate ohne Warnung als gültig angesehen. Andernfalls erfolgt eine Warnung, die sich in den meisten Browsern so bestätigen lässt, dass das (nicht vertrauenswürdige) Zertifikat akzeptiert wird. ==== CA Zertifikat erstellen ==== *CA.key: Private key der eigenen CA. *CARoot.cer: Zertifikat der eigenen CA. *Certificate.key: Private key des zukünftigen Server-Zertifikates *Certificate.csr: Zertifikatsanfrage. Wird nur zum Erstellen des Zertifikates benötigt. *Certificate.cer: Das Server-Zertifikat. ===== Private key generieren ===== <code>openssl genrsa -aes256 -out CA.key 2048</code> *aes256 Die erzeugte Datei wird mit einem Passwort geschützt. *2048: Die Bitlänge des Keys. ===== Root-Zertifikat erstellen ===== <code>openssl req -x509 -new -nodes -extensions v3_ca -key CA.key -days 1095 -out CARoot.cer -sha512</code> ==== Server-Zertifikat erstellen ==== ===== Private key generieren ===== <code>openssl genrsa -out Certificate.key 2048</code> ===== Zertifikatsanfrage erzeugen ===== <code>openssl req -new -key Certificate.key -out Certificate.csr -sha512</code> ===== Zertifikatsanfrage durch die CA beantworten ===== Hierbei wird das Zertifikat inklusive public key erstellt, der zum angegebenen private key passt: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAcreateserial -out Certificate.cer -days 365 -sha512</code> *CAcreateserial erstellt eine gleichnamige Seriennummerdatei, also CARoot.srl. Alternativ, wenn bereits eine Seriennummerdatei existiert, kann sie mit dem Parameter -CAserial &lt;file&gt; referenziert werden: <code>openssl x509 -req -in Certificate.csr -CA CARoot.cer -CAkey CA.Key -CAserial CARoot.srl -out Certificate.cer -days 365 -sha512</code> Wurde <code>Certificate</code><code>.cer</code> korrekt erstellt, kann <code>Certificate</code><code>.csr</code> gelöscht werden. === Ohne CA root Zertifikat (selbst signiert) === Wenn man kein CA root Zertifikat benötigt, weil man es nie in irgendeinem Browser installieren möchte und / oder man keine weiteren Serverzertifikate braucht, die von derselben Zertifizierungsstellt ausgestellt wurden, dann kann man das Ganze auch abkürzen, mit dem Kommando: <code>openssl req -new -x509 -keyout Certificate.pem -out Certificate.pem -days 365 -nodes</code> Hier werden in einem Schritt der private Schlüssel und das fertige Zertifikat erstellt und beides in die Datei <code>Certificate.pem </code>geschrieben. Wird beides getrennt voneinander benötigt, werden 2 verschiedene Dateinamen angegeben: <code>openssl req -new -x509 -keyout Certificate.key -out Certificate.cer -days 365 -nodes</code> == PKCS#12 Zertifikat und keystore == Ausgangssituation: Man hat bereits einen privaten Schlüssel und erhält ein dazu passendes signiertes Zertifikat. Beides liegt im PEM Format vor (Base64 ASCII). Mit OpenSSL konvertiert man alle Zertifikate zusammen in ein PKCS#12 Zertifikat (PFX, P12) <code>openssl pkcs12 -export -out certificate.p12 -inkey privateKey.key -in certificate.cer -certfile Primary.cer -certfile Secondary.cer</code> Primary.cer und Secondary.cer sind Intermediate CA Zertifikate, die ggf. für Apache benötigt werden. Aus dieser .p12 Datei wird ein neuer keystore generiert: <code>keytool -importkeystore -srckeystore certificate.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks</code> <code>-alias 1 -destalias EinKeyStoreAlias</code> können zusätzlich angegeben werden. Dabei muss man sich in dem Ordner befinden, in der die keystore-Datei abgelegt werden soll. == Einbindung in Tomcat == Die Einbindung der PEM-Zertifikate in den Tomcat erfolgt dann in der server.xml in dem HTTPS-Connector: <code><Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"<br/> &nbsp;&nbsp;&nbsp; maxThreads="150" SSLEnabled="true" scheme="https" secure="true"<br/> &nbsp;&nbsp;&nbsp; clientAuth="false" sslProtocol="TLS"<br/> &nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateFile</span>="&lt;Pfad+Dateiname&gt;.cer"<br/> &nbsp;&nbsp;&nbsp; <span style="color:#ff0000">SSLCertificateKeyFile</span>="&lt;Pfad+Dateiname&gt;.key"<br/> <span style="color:#ff0000">&nbsp;&nbsp;&nbsp; SSLCertificateChainFile</span>="&lt;Pfad+Dateiname&gt;.cer"/></code> <code>Das ChainFile ist u.U. erforderlich, wenn ein Browser Probleme in oder mit der certificate chain hat. Die Chain sind alle Zertifikate oberhalb des Serverzertifikates. In der Datei stehen sie in umgekehrter Reihenfolge, also das höchste (root) steht am Ende.</code> == certbot == Das tool von letsencrypt stellt gültige (nicht selbst signierte) SSL Zertifikate zur Verfügung und kann dabei auch den lokalen HTTP Server verwenden. Es sei hier nur als Hilfestellung festgehalten, dass die erzeugten privaten Schlüssel ggf. zu klein sind (256 bit). Um sie mit 2048 bit generieren zu lassen, lautet der Befehl: <pre>certbot certonly --rsa-key-size 2048 --key-type rsa</pre> Die so erzeugten Zertifikate sind jeweils 3 Monate gültig. Das regelmäßige Erneuern geht mit dem Befehl: <pre>certbot renew</pre> == Quellen == [https://www.sslshopper.com/ssl-converter.html https://www.sslshopper.com/ssl-converter.html] [http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html http://peter-on-java.blogspot.co.uk/2013/12/importing-ssl-certificates-to-keystore.html] [https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/ https://thomas-leister.de/internet/eine-eigene-openssl-ca-erstellen-und-zertifikate-ausstellen/] [http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/ http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate-authority/] aace0c0abb22395a46e5dd9269dc938391db76b7 USB BootStick (alt) 0 79 3110 656 2023-07-09T13:35:27Z Satria 1 Satria verschob die Seite [[USB BootStick]] nach [[USB BootStick (alt)]], ohne dabei eine Weiterleitung anzulegen: Update wikitext text/x-wiki Es gibt verschiedene Möglichkeiten, ein Betriebssystem von einem USB Stick zu booten. Hier wird jeweils <u>eine</u> Möglichkeit beschrieben, die sich als relativ leicht umsetzbar erwiesen hat. Dabei werden Vorkenntnisse vorausgesetzt. Dies ist <u>keine</u> Schritt-für-Schritt Anleitung für Anfänger! = Grundsätzliches = == Über USB Sticks == USB Sticks werden normalerweise unter Windows so formatiert, dass sie nicht als Bootmedium genutzt werden können. Ich meine, es kann sogar sein, dass sie ohne Partitionstabelle auskommen und direkt mit dem Bootsektor beginnen. Für einen bootbaren Stick ist eine Partitionstabelle jedoch in jedem Fall nötig!<br> Existiert keine Partitionstabelle, kann einfach das Tool "HP USB Disk Storage Format Tool" verwendet werden, das den Stick wie eine Festplatte (also mit MBR und Partitionstabelle) formatiert.<br> Ist dann eine Partitionstabelle vorhanden, muss die (einzige) Partition auf dem USB Stick als "aktiv" markiert werden, falls sie es nicht bereits nach dem Formatieren ist. Dies kann z.B. per Sektoreditor (WinHex) erreicht werden. Offset 446 (0x1BE) auf den Wert 128 (0x80) setzen. == Voraussetzungen == Der PC, der mit dem USB Stick gebootet werden soll muss ein BIOS haben, das das Booten von USB gestattet. Dies kann im BIOS fest eingestellt werden (per Bootreihenfolge), oder aber es gibt ein Boot-Menü, das (per Taste) aktiviert werden kann, in dem dann während des Bootvorgangs das gewünschte Bootmedium ausgewählt wird. = Windows Bootstick = == Benötigte Software == * [http://www.nu2.nu/pebuilder/ BartPE Builder] * SIBLO Boot Loader ( ehemals http://simplux.org/siblo/ , inzwischen muss aber gegoogled werden :( ) * Windows CD mit der Version (WindowsXP oder Windows 2003) auf die BartPE aufsetzen soll. * Die Datei "NTDETECT.COM" der Windows-Version, auf der BartPE aufsetzen soll. * Die Datei "SETUPLDR.BIN" von einer Windows 2003 SP1 CD (Verzeichnis "I386"). * Die Datei "ramdisk.sys" (bzw. zunächst "ramdisk.sy_") von einer Windows 2003 CD (SP1 oder SP2!) (Verzeichnis "I386"). Benötigt wird hierfür auch eine beliebige "expand.exe", um sie zu entpacken. Die expandierte Datei sollte die Version '''5.2.3790.1830''' oder '''5.2.3790.3959''' haben. * Treiber für den Festplatten-Controller der PCs, die mit dem Stick gebootet werden sollen. Diese müssen in der Form vorliegen, wie sie für Floppy-Disks während des Windows-Setups vorgesehen ist (inkl. "txtsetup.oem"). * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Das hier verwendete Prinzip macht sich die Fähigkeit des Windows2003 NT-loaders zu Nutze, eine ISO-Datei in eine RAM-disk laden zu können und den Bootvorgang von dort aus fortzusetzen. Der Bootvorgang wird per Bootloader (SIBLO) auf dem USB Stick angestoßen und erfordert, dass dort die Dateien NTLDR, NTDETECT.COM, winnt.sif und die ISO Datei im root-Verzeichnis liegen. Hier muss beachtet werden, dass sich die korrekte "ramdisk.sys" schon '''IN''' der ISO Datei befinden muss! == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Es sollte noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Der USB Stick ist jetzt prinzipiell bootbar. == Installation und Konfiguration von SIBLO == Die Installation des Booloader SIBLO richtet sich nach dessen Anleitung. Er beschreibt die ersten paar (reservierten) Sektoren gleich hinter dem MBR. Die Konfigurationsdatei "siblo.cfg" muss im root-Verzeichnis des USB Sticks liegen und beispielsweise so aussehen: <pre> default 1 label 1 ntloader ntldr </pre> Es wird also einfach ohne Rückfrage ein NT-loader geladen, der "ntldr" heißt. == NTLDR, NTDETECT.COM und winnt.sif == Die Datei "SETUPLDR.BIN" wird umbenannt in "NTLDR" und in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "NTDETECT.COM" wird in das root-Verzeichnis des USB Sticks kopiert.<br> Die Datei "winnt.sif" wird im root-Verzeichnis des USB Sticks erstellt und sollte den Inhalt haben: <pre> [SetupData] BootDevice = "ramdisk(0)" BootPath = "\I386\SYSTEM32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso" </pre> == BartPE ISO Datei == Wie man BartPE bedient, sucht man besser bei google oder direkt auf der website, von der man den PE Builder bekommt. [...] Was man beachten muss:<br> Man erstellt die BartPE CD erst im Zielverzeichnis, ohne die ISO zu erstellen. Falls man BartPE nicht ohnehin auf Windows 2003 SP1 oder SP2 aufsetzt, kopiert man die spezielle "ramdisk.sys" in das Zielverzeichnis (nach I386\SYSTEM32\DRIVERS) und erstellt anschließend aus dem Verzeichnis die ISO Datei. == Letzte Schritte == Die fertige ISO Datei wird nun in das root-Verzeichnis des USB Sticks kopiert und der Name (8.3, nicht länger!) in der winnt.sif im Parameter "/rdpath=" eingetragen (hier im Beispiel bartpe.iso). Wenn jetzt vom USB Stick gebootet wird, müsste BartPE starten! = DOS Bootstick = Trotz längst vergangenen DOS Zeiten, kann es notwendig sein, doch noch einmal dieses alte Betriebssystem zu starten. Zum Beispiel erfordern das memtest86+ und zahlreiche Festplatten Diagnose Tools, wie HDAT2 aber auch Hersteller tools, die zum Feststellen eines Defektes an der Platte und einem damit verbundenen Garantieanspruch zum Einsatz kommen. == Benötigte Software == * [http://vfd.sourceforge.net/ Virtual Floppy Drive] * [http://hp-usb-disk-storage-format-tool.softonic.de/ HP USB Disk Storage Format Tool] == Zusammenfassung == Um einen DOS Bootstick zu bekommen, sind nur wenige Schritte nötig. Ich gehe hier den Weg über ein Diskettenaufwerk oder eher über ein virtuelles Laufwerk (VirtualFloppyDrive, VFD), weil das schneller geht. == DOS Bootdisk erzeugen == Mit Hilfe von VFD wird ein virtuelles Diskettenlaufwerk erzeugt, bei dem es für unsere Zwecke egal ist, wo das .img file angelegt wird. Es ist nur Mittel zum Zweck.<br> Beim Formatieren des virtuellen Diskettenlaufwerks mit Windows setzt man das Häkchen bei "MS-DOS Startdiskette erstellen". Von dieser Diskette könnte man den Rechner jetzt in ein DOS booten. == Vorbereiten des USB Sticks == Das HP USB Disk Storage Format Tool wird dazu verwendet, den USB Stick zu formatieren. Dabei wird das Häkchen bei "Create a DOS startup disk" gesetzt! Bei "using DOS system files located at" wählen wir das (VFD) Laufwerk aus, das wir im vorigen Schritt als DOS Startdiskette formatiert haben haben. Es sollte anschließend noch überprüft werden, ob die Partition auf dem Stick als "aktiv" markiert ist. Von dem USB Stick kann jetzt schon das DOS gebootet werden. == Letzte Schritte == Der Bootstick kann jetzt konfiguriert werden, was bedeutet, dass die CONFIG.SYS und AUTOEXEC.BAT nach eigenen Bedürfnissen angepasst werden, unnötige Dateien gelöscht und die gewünschten Tools drauf kopiert werden können. Dateien, die natürlich unbedingt auf dem Stick bleiben müssen:<br> IO.SYS<br> MSDOS.SYS<br> COMMAND.COM<br> Fertig ist der DOS Bootstick. 9b8d345891388635e72de937478110ebedb57323 USB BootStick 0 2671 3111 2023-07-09T14:00:01Z Satria 1 Die Seite wurde neu angelegt: „== Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, ei, das eine Reihe von Skripten und Tools mitbringt,…“ wikitext text/x-wiki == Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, ei, das eine Reihe von Skripten und Tools mitbringt, um die Installation so komfortabel wie möglich zu gestalten. Easy2Boot nutzt u.A. GRUB4DOS als Bootloader und, um ein Bootmenü bereitzustellen. Die verschiedenen Betriebssystem-Images müssen selber erstellt und auf den Stick in die richtige Ordner kopiert werden! Diese werden dann automatisch im Bootmenü angezeigt. E2B gibg es hier: https://easy2boot.xyz/ E2B bietet ein kleines GUI an, mit einem Button, der dann alles für einen erledigt. Dabei wird der Stick mit NTFS formatiert (vielleicht erst ab einer gewissen Größe) und damit natürlich alle Dateien gelöscht. Falls man ein anderes Dateisystem bevorzugt oder einen bestehenden Stick verwenden möchte, kann man den Inhalt des E2B Ordners einfach auf den Stick kopieren und (von einem anderen Laufwerk aus) das Skript <code>\docs\Make_E2B_USB_Drive\Install grub4dos to E2B USB drive.cmd</code> ausführen. == UEFI == 39ef676b84ac9b844ba7fcdbe73df651f8824384 3112 3111 2023-07-09T14:29:46Z Satria 1 wikitext text/x-wiki == Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, ei, das eine Reihe von Skripten und Tools mitbringt, um die Installation so komfortabel wie möglich zu gestalten. Easy2Boot nutzt u.A. GRUB4DOS als Bootloader und, um ein Bootmenü bereitzustellen. Die verschiedenen Betriebssystem-Images müssen selber erstellt und auf den Stick in die richtige Ordner kopiert werden! Diese werden dann automatisch im Bootmenü angezeigt. Mehr dazu in dem alten Artikel: [[USB BootStick (alt)]] E2B gibg es hier: https://easy2boot.xyz/ E2B bietet ein kleines GUI an, mit einem Button, der dann alles für einen erledigt. Dabei wird der Stick mit NTFS formatiert (vielleicht erst ab einer gewissen Größe) und damit natürlich alle Dateien gelöscht. Falls man ein anderes Dateisystem bevorzugt oder einen bestehenden Stick verwenden möchte, kann man den Inhalt des E2B Ordners einfach auf den Stick kopieren und (von einem anderen Laufwerk aus) das Skript <code>\docs\Make_E2B_USB_Drive\Install grub4dos to E2B USB drive.cmd</code> ausführen. == UEFI == Wenn der Stick (zusätzlich) per [[UEFI]] gebootet werden soll, muss er mit FAT32 formatiert sein, was den Vorteil hat, dass die E2B Dateien und die UEFI Boot-Dateien einfach koexistieren können. Hierzu legt man einfach die seine .efi Dateien (z.B. BOOTX64.EFI) nach \EFI\BOOT\ ab. Das lässt sich auch mit GRUB2 nutzen, womit man dann sein eigenes Bootmenü für UEFI realisieren kann. e58ed24f242fa87c8bec68c7dc5b6f3114837d95 3114 3112 2023-07-09T14:31:05Z Satria 1 /* UEFI */ wikitext text/x-wiki == Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, ei, das eine Reihe von Skripten und Tools mitbringt, um die Installation so komfortabel wie möglich zu gestalten. Easy2Boot nutzt u.A. GRUB4DOS als Bootloader und, um ein Bootmenü bereitzustellen. Die verschiedenen Betriebssystem-Images müssen selber erstellt und auf den Stick in die richtige Ordner kopiert werden! Diese werden dann automatisch im Bootmenü angezeigt. Mehr dazu in dem alten Artikel: [[USB BootStick (alt)]] E2B gibg es hier: https://easy2boot.xyz/ E2B bietet ein kleines GUI an, mit einem Button, der dann alles für einen erledigt. Dabei wird der Stick mit NTFS formatiert (vielleicht erst ab einer gewissen Größe) und damit natürlich alle Dateien gelöscht. Falls man ein anderes Dateisystem bevorzugt oder einen bestehenden Stick verwenden möchte, kann man den Inhalt des E2B Ordners einfach auf den Stick kopieren und (von einem anderen Laufwerk aus) das Skript <code>\docs\Make_E2B_USB_Drive\Install grub4dos to E2B USB drive.cmd</code> ausführen. == UEFI == Wenn der Stick (zusätzlich) per [[UEFI]] gebootet werden soll, muss er mit FAT32 formatiert sein, was den Vorteil hat, dass die E2B Dateien und die UEFI Boot-Dateien einfach koexistieren können. Hierzu legt man einfach die seine .efi Dateien (z.B. BOOTX64.EFI) nach \EFI\BOOT\ ab. Das lässt sich auch mit [[GRUB2]] nutzen, womit man dann sein eigenes Bootmenü für UEFI realisieren kann. 7c3e5f208f2d9e8ea7440aa02b51dab39e9ffde4 3115 3114 2023-07-09T14:36:57Z Satria 1 wikitext text/x-wiki == Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, ei, das eine Reihe von Skripten und Tools mitbringt, um die Installation so komfortabel wie möglich zu gestalten. Easy2Boot nutzt u.A. GRUB4DOS als Bootloader und, um ein Bootmenü bereitzustellen. Die verschiedenen Betriebssystem-Images müssen selber erstellt und auf den Stick in die richtige Ordner kopiert werden! Diese werden dann automatisch im Bootmenü angezeigt. Mehr dazu in dem alten Artikel: [[USB BootStick (alt)]] E2B gibg es hier: https://easy2boot.xyz/ E2B bietet ein kleines GUI an, mit einem Button, der dann alles für einen erledigt. Dabei wird der Stick mit NTFS formatiert (vielleicht erst ab einer gewissen Größe), was natürlich alle Dateien löscht! == Stick manuell vorbereiten == Falls man ein anderes Dateisystem bevorzugt oder einen bestehenden Stick verwenden möchte, kann man den Inhalt des E2B Ordners einfach auf den Stick kopieren und (von einem anderen Laufwerk aus) das Skript <code>\docs\Make_E2B_USB_Drive\Install grub4dos to E2B USB drive.cmd</code> ausführen. Der Stick sollte dabei allerdigns bereits partitioniert sein (nicht einfach nur formatiert). Falls er es nicht ist, geht das mit dem tool [https://www.heise.de/download/product/hp-usb-disk-storage-format-tool-97463 | HP USB Disk Storage Format Tool], was natürlich wieder bedeutet, dass erst mal alle Dateien vom Stick verschwinden! == UEFI == Wenn der Stick (zusätzlich) per [[UEFI]] gebootet werden soll, muss er mit FAT32 formatiert sein, was den Vorteil hat, dass die E2B Dateien und die UEFI Boot-Dateien einfach koexistieren können. Hierzu legt man einfach die seine .efi Dateien (z.B. BOOTX64.EFI) nach \EFI\BOOT\ ab. Das lässt sich auch mit [[GRUB2]] nutzen, womit man dann sein eigenes Bootmenü für UEFI realisieren kann. d5667732c233ba077e0a4932ce907c23e3ae0eba 3116 3115 2023-07-09T14:54:56Z Satria 1 /* Stick manuell vorbereiten */ wikitext text/x-wiki == Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, ei, das eine Reihe von Skripten und Tools mitbringt, um die Installation so komfortabel wie möglich zu gestalten. Easy2Boot nutzt u.A. GRUB4DOS als Bootloader und, um ein Bootmenü bereitzustellen. Die verschiedenen Betriebssystem-Images müssen selber erstellt und auf den Stick in die richtige Ordner kopiert werden! Diese werden dann automatisch im Bootmenü angezeigt. Mehr dazu in dem alten Artikel: [[USB BootStick (alt)]] E2B gibg es hier: https://easy2boot.xyz/ E2B bietet ein kleines GUI an, mit einem Button, der dann alles für einen erledigt. Dabei wird der Stick mit NTFS formatiert (vielleicht erst ab einer gewissen Größe), was natürlich alle Dateien löscht! == Stick manuell vorbereiten == Falls man ein anderes Dateisystem bevorzugt oder einen bestehenden Stick verwenden möchte, kann man den Inhalt des E2B Ordners einfach auf den Stick kopieren und (von einem anderen Laufwerk aus) das Skript <code>\docs\Make_E2B_USB_Drive\Install grub4dos to E2B USB drive.cmd</code> ausführen. Der Stick sollte dabei allerdigns bereits partitioniert sein (nicht einfach nur formatiert). Falls er es nicht ist, geht das mit dem tool [https://www.heise.de/download/product/hp-usb-disk-storage-format-tool-97463 | HP USB Disk Storage Format Tool], was natürlich wieder bedeutet, dass erst mal alle Dateien vom Stick verschwinden! Außerdem sollte (z.B. per DISKPART) die Partition auf dem Stick als "aktiv" gekennzeichnet werden, da man sonst ggf. beim Booten einen "Invalid partition table!" Fehler erhält. == UEFI == Wenn der Stick (zusätzlich) per [[UEFI]] gebootet werden soll, muss er mit FAT32 formatiert sein, was den Vorteil hat, dass die E2B Dateien und die UEFI Boot-Dateien einfach koexistieren können. Hierzu legt man einfach die seine .efi Dateien (z.B. BOOTX64.EFI) nach \EFI\BOOT\ ab. Das lässt sich auch mit [[GRUB2]] nutzen, womit man dann sein eigenes Bootmenü für UEFI realisieren kann. 44ced830353e1b144d95b2a29452af3d43cacd9a UEFI 0 2654 3113 2966 2023-07-09T14:30:13Z Satria 1 wikitext text/x-wiki == Der Unterschied zum BIOS == Was ist der wesentliche Unterschied von UEFI zum vorigen BIOS in Bezug auf den Bootvorgang? Nach dem POST oder "Power On Self Test", (den es bei beiden Systemen gibt), fragt das BIOS die im Setup ausgewählte Festplatte nach der als "Aktiv" markierten Partition. (Sofern es im MBR keinen Bootmanager wie GRUB4DOS gibt). In dieser Partition wird der erste Sektor (der Bootsektor) angesprungen, der ausführbaren Code enthält und das Laden der Startdateien und somit des Betriebssystems übernimmt. Beim UEFI muss im Setup (gern NVRAM genannt, weil hier die Einstellungen persistiert werden) mindestens eine Startkonfiguration hinterlegt und aktiviert sein. Diese wird über die Setups diverser Betriebssysteme per API in das NVRAM geschrieben. Darin enthalten ist der Speicherort der zu ladenden .efi Datei, die beim Booten angesprungen wird. Ein MBR oder Bootsektor spielt hier keine Rolle mehr. Die .efi Datei muss auf einer beliebigen FAT oder FAT32 Partition liegen. Sie enthält ausführbaren Code und übernimmt das restliche Starten des Betriebssystems. Eine Ausnahme stellen Wechseldatenträger wie USB-Sticks dar. Hier kann beim Bootvorgang und je nach UEFI Implementierung der Datenträger als Ganzes zum Starten ausgewählt werden. (s. ''Die .efi Startdateien''). == Die .efi Startdateien == Eine UEFI-Systempartition muss ein FAT oder FAT32 Dateisystem besitzen. Deshalb kann man sie (wenn auch auf Umwegen) z.B. unter Windows ganz normal als Laufwerk mounten und lesen und beschreiben. Grundsätzlich können Verzeichnisse und Dateien dort beliebig angelegt und im UEFI NVRAM als Startkonfiguration hinterlegt werden, aber es gibt auch ein paar Konventionen. Normalerweise gibt es auf dieser Partition zunächst ein Verzeichnis "EFI". Darin "Boot". Darin eine Datei "Bootx64.efi". Diese Datei wird geladen, wenn der gesamte Datenträger zum Booten ausgewählt wird, wie es z.B. bei USB-Sticks der Fall sein kann. Sie kann auch als "fallback" gesehen werden. Windows 10 z.B. legt diese auch Datei an, platziert seine eigentlichen Startdateien aber unter \EFI\Microsoft\Boot. Die Bootx64.efi dürfte im fallback-Fall aber zum gleichen Bootvorgang führen, wie die eigentlichen .efi Dateien. == UEFI Shell == Es gibt die mehr oder weniger offizielle UEFI-Shell, ein Programm mit Eingabeaufforderung, das eine ganze Reihe von Befehlen bereitstellt, die es z.B. auch ermöglichen, Startkonfigurationen hinzuzufügen, zu bearbeiten und auch zu löschen. Der normale Dateiname ist "Shellx64.efi". Sie kann durch einen Bootmanager wie z.B. GRUB2 geladen werden, aber auch durch manches UEFI-Setup direkt. Dafür muss es auf irgendeiner FAT oder FAT32 Partition direkt im Hauptverzeichnis liegen. https://github.com/tianocore/edk2/tree/UDK2018/ShellBinPkg/UefiShell == Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/GRUB https://de.wikipedia.org/wiki/Bootmgr === Weitere links === https://antergos.com/wiki/de/miscellaneous/how-to-fix-grub-with-efi-boot/ https://wiki.ubuntuusers.de/EFI_USB-Stick/ https://thinkpad-forum.de/threads/123262-EFI-Grub2-Multiboot-HowTo cd2f5f89a4d7b88fe31f1df88094377fa631609f USB BootStick 0 2671 3117 3116 2023-07-09T22:15:42Z Satria 1 wikitext text/x-wiki == Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, ei, das eine Reihe von Skripten und Tools mitbringt, um die Installation so komfortabel wie möglich zu gestalten. Easy2Boot nutzt u.A. GRUB4DOS als Bootloader und, um ein Bootmenü bereitzustellen. Die verschiedenen Betriebssystem-Images müssen selber erstellt und auf den Stick in die richtige Ordner kopiert werden! Diese werden dann automatisch im Bootmenü angezeigt. Mehr dazu in dem alten Artikel: [[USB BootStick (alt)]] E2B gibg es hier: https://easy2boot.xyz/ E2B bietet ein kleines GUI an, mit einem Button, der dann alles für einen erledigt. Dabei wird der Stick mit NTFS formatiert (vielleicht erst ab einer gewissen Größe), was natürlich alle Dateien löscht! == Stick manuell vorbereiten == Falls man ein anderes Dateisystem bevorzugt oder einen bestehenden Stick verwenden möchte, kann man den Inhalt des E2B Ordners einfach auf den Stick kopieren und (von einem anderen Laufwerk aus) das Skript <code>\docs\Make_E2B_USB_Drive\Install grub4dos to E2B USB drive.cmd</code> ausführen. Der Stick sollte dabei allerdigns bereits partitioniert sein (nicht einfach nur formatiert). Falls er es nicht ist, geht das mit dem tool [https://www.heise.de/download/product/hp-usb-disk-storage-format-tool-97463 | HP USB Disk Storage Format Tool], was natürlich wieder bedeutet, dass erst mal alle Dateien vom Stick verschwinden! Außerdem sollte (z.B. per DISKPART) die Partition auf dem Stick als "aktiv" gekennzeichnet werden, da man sonst ggf. beim Booten einen "Invalid partition table!" Fehler erhält. == UEFI == Wenn der Stick (zusätzlich) per [[UEFI]] gebootet werden soll, muss er mit FAT32 formatiert sein, was den Vorteil hat, dass die E2B Dateien und die UEFI Boot-Dateien einfach koexistieren können. Hierzu legt man einfach die seine .efi Dateien (z.B. BOOTX64.EFI) nach \EFI\BOOT\ ab. Das lässt sich auch mit [[GRUB2]] nutzen, womit man dann sein eigenes Bootmenü für UEFI realisieren kann. c8a43ec3d28d00346a4bd2bcf3e8352417ef3d1c 3118 3117 2023-07-15T22:22:53Z Satria 1 wikitext text/x-wiki == Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, das eine Reihe von Skripten und Tools mitbringt, um die Installation so komfortabel wie möglich zu gestalten. Easy2Boot nutzt u.A. GRUB4DOS als Bootloader und, um ein Bootmenü bereitzustellen. Die verschiedenen Betriebssystem-Images müssen selber erstellt und auf den Stick in die richtigen Ordner kopiert werden! Diese werden dann automatisch im Bootmenü angezeigt. Mehr dazu in dem alten Artikel: [[USB BootStick (alt)]] E2B gibg es hier: https://easy2boot.xyz/ E2B bietet ein kleines GUI an mit einem Button, der dann alles für einen erledigt. Dabei wird der Stick mit NTFS formatiert (vielleicht erst ab einer gewissen Größe), was natürlich alle Dateien löscht! == Stick manuell vorbereiten == Falls man ein anderes Dateisystem bevorzugt oder einen bestehenden Stick verwenden möchte, kann man den Inhalt des E2B Ordners einfach auf den Stick kopieren und (von einem anderen Laufwerk aus) das Skript <code>\docs\Make_E2B_USB_Drive\Install grub4dos to E2B USB drive.cmd</code> ausführen. Der Stick sollte dabei allerdigns bereits partitioniert sein (nicht einfach nur formatiert). Falls er es nicht ist, geht das mit dem tool [https://www.heise.de/download/product/hp-usb-disk-storage-format-tool-97463 | HP USB Disk Storage Format Tool], was natürlich wieder bedeutet, dass erst mal alle Dateien vom Stick verschwinden! Außerdem sollte (z.B. per DISKPART) die Partition auf dem Stick als "aktiv" gekennzeichnet werden, da man sonst ggf. beim Booten einen "Invalid partition table!" Fehler erhält. == UEFI == Wenn der Stick (zusätzlich) per [[UEFI]] gebootet werden soll, muss er mit FAT32 formatiert sein, was den Vorteil hat, dass die E2B Dateien und die UEFI Boot-Dateien einfach koexistieren können. Hierzu legt man einfach die seine .efi Dateien (z.B. BOOTX64.EFI) nach \EFI\BOOT\ ab. Das lässt sich auch mit [[GRUB2]] nutzen, womit man dann sein eigenes Bootmenü für UEFI realisieren kann. 201c90e6552f3cc182743b03198ed681a7ae89ca 3119 3118 2023-07-25T19:54:07Z Satria 1 wikitext text/x-wiki == Easy2Boot == Eine einfache Methode, einen USB Stick als Bootmedium zu nurtzen ist inzwischen Easy2Boot, das eine Reihe von Skripten und Tools mitbringt, um die Installation so komfortabel wie möglich zu gestalten. Easy2Boot nutzt u.A. GRUB4DOS als Bootloader und, um ein Bootmenü bereitzustellen. Die verschiedenen Betriebssystem-Images müssen selber erstellt und auf den Stick in die richtigen Ordner kopiert werden! Diese werden dann automatisch im Bootmenü angezeigt. Mehr dazu in dem alten Artikel: [[USB BootStick (alt)]] E2B gibt es hier: https://easy2boot.xyz/ E2B bietet ein kleines GUI an mit einem Button, der dann alles für einen erledigt. Dabei wird der Stick mit NTFS formatiert (vielleicht erst ab einer gewissen Größe), was natürlich alle Dateien löscht! == Stick manuell vorbereiten == Falls man ein anderes Dateisystem bevorzugt oder einen bestehenden Stick verwenden möchte, kann man den Inhalt des E2B Ordners einfach auf den Stick kopieren und (von einem anderen Laufwerk aus) das Skript <code>\docs\Make_E2B_USB_Drive\Install grub4dos to E2B USB drive.cmd</code> ausführen. Der Stick sollte dabei allerdigns bereits partitioniert sein (nicht einfach nur formatiert). Falls er es nicht ist, geht das mit dem tool [https://www.heise.de/download/product/hp-usb-disk-storage-format-tool-97463 | HP USB Disk Storage Format Tool], was natürlich wieder bedeutet, dass erst mal alle Dateien vom Stick verschwinden! Außerdem sollte (z.B. per DISKPART) die Partition auf dem Stick als "aktiv" gekennzeichnet werden, da man sonst ggf. beim Booten einen "Invalid partition table!" Fehler erhält. == UEFI == Wenn der Stick (zusätzlich) per [[UEFI]] gebootet werden soll, muss er mit FAT32 formatiert sein, was den Vorteil hat, dass die E2B Dateien und die UEFI Boot-Dateien einfach koexistieren können. Hierzu legt man einfach die seine .efi Dateien (z.B. BOOTX64.EFI) nach \EFI\BOOT\ ab. Das lässt sich auch mit [[GRUB2]] nutzen, womit man dann sein eigenes Bootmenü für UEFI realisieren kann. f9658ef5e724efcf7ca0f1637dfaa1af8c6883fb Raspberry PI 0 2664 3120 3107 2023-10-17T13:14:38Z Satria 1 /* microSD Karten Image verkleinern */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) lite -> Desktop === Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microCD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard 50bb6fd269f446710fe3ba41a1f28527adad6e75 3121 3120 2023-10-17T13:15:16Z Satria 1 /* microSD Karten Image verkleinern */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) lite -> Desktop === Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard 58c5f79cb71ae625ed40139f2e82bc3ddfe11c5e 3130 3121 2024-01-25T14:41:13Z Satria 1 /* Startposition der 2. Partition ermitteln */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) lite -> Desktop === Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard af7060eaf4b380b2bf728c540df1954d7d6960e4 3132 3130 2024-02-08T01:34:50Z Satria 1 Spannungswarnung abschalten wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) lite -> Desktop === Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard 23b5c5c703a85d58015787265cb7f2955f3cb3a5 3133 3132 2024-02-08T03:18:52Z Satria 1 bookworm wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) lite -> Desktop === Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == Raspberry PI 5 == === RaspiOS (Debian 12 bookworm) WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard 1bef276c0fc320a608cf71f3c6274aacd0075af4 3134 3133 2024-02-08T04:20:12Z Satria 1 armhf auf arm64 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI 4 == === RaspiOS (Debian 11 bullseye) lite -> Desktop === Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über raspi-config das System so eingestellt werden, dass es in den Desktop bootet. == Raspberry PI 5 == === RaspiOS (Debian 12 bookworm) WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard 4c26336661431de05762b912a1b58eccb8ac070b 3137 3134 2024-02-09T12:38:36Z Satria 1 Umsortierung und weitere Inhalte wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. 49f486e031c48319b73ff0b7e59ce3c17ce4ec51 3138 3137 2024-02-09T12:48:54Z Satria 1 /* Nützliche tools */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. e61bd1f58385d3d11206236e59728b94bad9ceb2 3143 3138 2024-04-03T00:08:49Z Satria 1 /* microSD Karten Image verkleinern */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. 9446aa0ee2a4fb4b949979819b859becf6825262 3148 3143 2024-11-30T22:23:35Z Satria 1 Minecraft auf Raspberry PI 5 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -v ~/mcdata:/data \ itzg/minecraft-server:stable 7df1ce53d8cd86ba36456520aa202edbd7e36f11 3149 3148 2024-11-30T23:01:22Z Satria 1 /* Minecraft-Server */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable 850c17cc19c8fd37732399c9cb386a66f0541a4b 3150 3149 2024-12-21T23:27:18Z Satria 1 NVMe wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable 3bfe959be521fb74bc54c456b2bf62f07ad4c31b 3151 3150 2024-12-22T05:04:55Z Satria 1 Autostart wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft 52f04ab917f007e73ca33cca8a301fe4fa312fef 3152 3151 2024-12-24T02:41:55Z Satria 1 Added sudo wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft 6af2ac8ec330dc4ba998cccef3331929b55fcd30 3153 3152 2024-12-30T20:55:41Z Satria 1 /* Größenanpassungen im Image mit fdisk */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft 2c3655b9b14e4bfc2c6c111fa766c21ef7861488 Linux 0 13 3122 3052 2024-01-09T10:58:45Z Satria 1 JSON zu Variable zuweisen wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: <pre>//<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0</pre> == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm b3f6daaee3cb785f1f460fe90e4f333d975f40ee 3131 3122 2024-01-25T17:59:20Z Satria 1 /* Linux-Version ermitteln */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: <pre>mount -r /dev/md5 /mnt/HDD</pre> Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: <pre>//<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0</pre> == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 73cc67af45a3a4b8183115ced4d21873e1c03bfd 3135 3131 2024-02-09T02:19:40Z Satria 1 /* Mounten */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Ein Dateisystem beschreibbar remounten == sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 4fb773b92f97082fac2b39bcde3157a87b24ded1 3142 3135 2024-04-03T00:07:14Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -d Das Ergebnis sei z.B.: <pre> NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sda ├─sda1 └─sda5 ntfs Transfer C826D3B026D69F2E mmcblk0 ├─mmcblk0p1 vfat FAT32 bootfs 483F-05A0 379,3M 26% /boot/firmware └─mmcblk0p2 ext4 1.0 rootfs ee354f68-c22f-48b7-a81c-43ae87c280f8 23,3G 11% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ntfs /dev/disk/by-uuid/C826D3B026D69F2E /media/Transfer/ === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 78fbf488b8144cef7a1d2816d2517f56750b093f 3145 3142 2024-05-27T08:46:44Z Satria 1 Arrays wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -d Das Ergebnis sei z.B.: <pre> NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sda ├─sda1 └─sda5 ntfs Transfer C826D3B026D69F2E mmcblk0 ├─mmcblk0p1 vfat FAT32 bootfs 483F-05A0 379,3M 26% /boot/firmware └─mmcblk0p2 ext4 1.0 rootfs ee354f68-c22f-48b7-a81c-43ae87c280f8 23,3G 11% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ntfs /dev/disk/by-uuid/C826D3B026D69F2E /media/Transfer/ === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm b090ee55e516f65db80cde7872bd0350ae0383b7 Hauptseite 0 1 3123 3109 2024-01-22T00:31:27Z Satria 1 /* Themen */ wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[Vuze 3D]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] d79f82c5630979992502e105a2001ee9fe9602f2 3139 3123 2024-02-16T15:26:22Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[]VMWare]<br> [[Vuze 3D]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] ca4d1be31880218e0d679337d8e99a5663b4c48b 3140 3139 2024-02-16T15:26:49Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[VMWare]]<br> [[Vuze 3D]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 67155e44e24373b59080f4cb8d633bfdb3368493 3146 3140 2024-09-19T10:23:20Z Satria 1 Neu: Windows 11 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[VMWare]]<br> [[Vuze 3D]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows 11]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 536417eabc3d883970ea2ef689de60ac58214bb9 3155 3146 2025-02-08T20:38:25Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Player Unknown's Battle Ground]] (PUBG) [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[VMWare]]<br> [[Vuze 3D]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows 11]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] a079c94e395f99b2f939bceea931c2d93d2037a9 3156 3155 2025-02-08T20:39:28Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Player Unknown's Battle Ground]] (PUBG)<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[VMWare]]<br> [[Vuze 3D]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows 11]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] c3ebf5e20f302fe684173d66d5b5aaa4b7f88048 3159 3156 2025-02-08T20:44:01Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[EVERSPACE 2]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Player Unknown's Battle Ground]] (PUBG)<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[VMWare]]<br> [[Vuze 3D]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows 11]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] 2ed21d43ddc5cef01ccdff23144c561d06597efc 3162 3159 2025-02-09T23:30:00Z Satria 1 wikitext text/x-wiki == Themen == (Manuell gepflegtes Inhaltsverzeichnis) [[Abkürzungen]]<br> [[Analoges Fernsehen]]<br> [[Android]]<br> [[Angular]]<br> [[ApacheTomcat]]<br> [[Autobatterie]]<br> [[Arduino / Digispark]]<br> [[Boeing 767]]<br> [[Cookies]]<br> [[DHL Kundenkarte]]<br> [[Distanzscheiben]]<br> [[DNS]] (biologisch)<br> [[Docker]]<br> [[DOS Prompt]]<br> [[Edelstahl]]<br> [[EHEC]]<br> [[Facebook]]<br> [[FarCry4]]<br> [[FFmpeg]]<br> [[FreePBX]]<br> [[FritzBox]]<br> [[FTP]]<br> [[Game hacks]]<br> [[Garret Turbolader]]<br> [[Gliese 581]]<br> [[GRUB2]]<br> [[htaccess]]<br> [[Homematic]]<br> [[IrfanView]]<br> [[Javascript]]<br> [[Katalysator]] (KFZ)<br> [[Kühlgrenztemperatur]]<br> [[Ladeluftkühler]]<br> [[Levenberg Marquardt]]<br> [[Lightning]]<br> [[Linux]]<br> [[Logitech SetPoint]]<br> [[Mediawiki]]<br> [[Mobilfunk Vorwahlen]]<br> [[MotionEyeOS]]<br> [[Mozilla Firefox]]<br> [[Mozilla Thunderbird]]<br> [[MySQL Foreign Keys]]<br> [[NAS326]]<br> [[o2Box6441]]<br> [[PiVPN]]<br> [[Raspberry PI]]<br> [[RNS]]<br> [[SeedDMS]]<br> [[SSL Zertifikate]]<br> [[SSRS]]<br> [[UEFI]]<br> [[USB BootStick]]<br> [[USB2LPT]]<br> [[Virtual Hosts]]<br> [[VMWare]]<br> [[Vuze 3D]]<br> [[Winamp]]<br> [[Windows .local Dateien]]<br> [[Windows 7 & 8]]<br> [[Windows 10]]<br> [[Windows 11]]<br> [[Windows Autostart Orte]]<br> [[Windows CHM Dateien]]<br> [[Windows Doppelte Autostart-Einträge]]<br> [[Windows Explorerspalten auf CD-Laufwerk]]<br> [[Windows Installation ohne CDROM Laufwerk]]<br> [[Windows Internet Explorer auf Desktop]]<br> [[Windows Netzwerkprobleme]]<br> [[XWing Alliance screen resolutions]]<br> [[Youtube]]<br> [[Meine Fragen]] == Starthilfen == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen] ce7678c2f578cd3d8e9a0257e047705301b94660 Datei:MediaFoundation.mp4.png 6 2672 3124 2024-01-22T00:36:02Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Vuze 3D 0 2673 3125 2024-01-22T00:36:38Z Satria 1 Die Seite wurde neu angelegt: „Die preisgünstige 3D 360° Kamera ! == Vuze VR Studio == Hier musste ich ein bisschen herumexperimentieren, da ich zuerst "Failed to create source reader" a…“ wikitext text/x-wiki Die preisgünstige 3D 360° Kamera ! == Vuze VR Studio == Hier musste ich ein bisschen herumexperimentieren, da ich zuerst "Failed to create source reader" als Fehlermeldung erhielt, beim Versuch, ein Video der Cam zu öffnen. Als Lösung fand ich heraus, dass die Media Foundation (64-bit) für .mp4 Dateien nicht disabled sein darf: [[Datei:MediaFoundation.mp4.png|align=left]] 1464d432a29edddff82faa5d8f98c0d5ec71e08f 3126 3125 2024-01-22T00:37:05Z Satria 1 wikitext text/x-wiki Die preisgünstige 3D 360° Kamera ! == Vuze VR Studio == Hier musste ich ein bisschen herumexperimentieren, da ich zuerst "Failed to create source reader" als Fehlermeldung erhielt, beim Versuch, ein Video der Cam zu öffnen. Als Lösung fand ich heraus, dass die Media Foundation (64-bit) für .mp4 Dateien nicht disabled sein darf: [[Datei:MediaFoundation.mp4.png]] dac5aa03ccc4b3197236c05c04e096dd27aa57f1 3127 3126 2024-01-22T00:37:59Z Satria 1 wikitext text/x-wiki Die preisgünstige 3D 360° Kamera ! == Vuze VR Studio == Hier musste ich ein bisschen herumexperimentieren, da ich zuerst "Failed to create source reader" als Fehlermeldung erhielt, beim Versuch, ein Video der Cam zu öffnen. Als Lösung fand ich heraus, dass die Media Foundation (64-bit) für .mp4 Dateien nicht disabled sein darf: [[Medium:MediaFoundation.mp4.png|align=right]] 8d16b189776efc480dff9d6c63907e76182d0337 3128 3127 2024-01-22T00:38:18Z Satria 1 wikitext text/x-wiki Die preisgünstige 3D 360° Kamera ! == Vuze VR Studio == Hier musste ich ein bisschen herumexperimentieren, da ich zuerst "Failed to create source reader" als Fehlermeldung erhielt, beim Versuch, ein Video der Cam zu öffnen. Als Lösung fand ich heraus, dass die Media Foundation (64-bit) für .mp4 Dateien nicht disabled sein darf: [[Medium:MediaFoundation.mp4.png]] 4df2444b5b075ab6fb653bf6e7a30d3abc202772 3129 3128 2024-01-22T00:45:24Z Satria 1 wikitext text/x-wiki Die preisgünstige 3D 360° Kamera ! == Vuze VR Studio == Hier musste ich ein bisschen herumexperimentieren, da ich zuerst "Failed to create source reader" als Fehlermeldung erhielt, beim Versuch, ein Video der Cam zu öffnen. Als Lösung fand ich heraus, dass die Media Foundation (64-bit) für .mp4 Dateien nicht disabled sein darf: [[Datei:MediaFoundation.mp4.png]] 462c6daf827a7094008480b108241892386f1049 SeedDMS 0 2655 3136 3093 2024-02-09T02:36:31Z Satria 1 /* Raspberry Pi 3 als build machine */ wikitext text/x-wiki == Was ist SeedDMS? == SeedDMS ist ein Dokumentenmanagementsystem mit Weboberfläche, basierend auf PHP, MySQL und Javascript. https://www.seeddms.org == SeedDMS auf ZyXEL NAS == Gleich vorweg: Es gehört einiges dazu, SeedDMS auf dem Linux eines ZyXEL NAS laufen zu lassen! Aber der integrierte PHP-fähige Webserver kann dazu verwendet werden, mit SeedDMS ein Dokumentenmanagementsystem aufzusetzen, ohne Cloud und Internet, das - wenn man will - aber trotzdem von überall erreichbar ist. Auch stellt das hier keine Anfängeranleitung dar. Ich setze voraus, dass man mit der Administration des NAS und seinem Netzwerk vertraut ist. === Grundlagen === ==== Web-Publishing mit HTTPS ==== Damit der integrierte Webserver Inhalte von Freigaben als Webinhalte darstellt, müssen wir das <span style="color:orange;">'''Web-Publishing'''</span> aktivieren. Wer dabei eine erhöhte Sicherheit für seine Login-Daten haben möchte, aktiviert außerdem HTTPS. ==== Neue Freigabe mit Webfreigabe ==== Am besten ist es, man erstellt auf dem NAS eine eigene Freigabe, z.B. <span style="color:orange;">'''dms'''</span> und gibt dem Benutzer die nötigen Berechtigungen, mit dem wir hier die Installation vornehmen wollen. Bei dieser Freigabe muss die <span style="color:orange;">'''Webfreigabe'''</span> aktiviert sein ('dms' auf Web veröffentlichen). Damit nun aber nicht jeder den Verzeichnisinhalt dieser Freigabe sehen kann, erstellen wir darin eine Datei <span style="color:orange;">'''.htaccess'''</span> mit dem Inhalt: <pre>Options -Indexes</pre> Jetzt landet man mit einem Browser unter <span style="color:orange;">https://NAS:5001/MyWeb/dms</span>, kann aber nichts sehen, weil noch keine Startseite erstellt wurde. Aus dem Internet ist diese Seite dann über ein <span style="color:orange;">Portforwarding</span> oder über ein <span style="color:orange;">VPN</span> erreichbar. ==== Aktivierter SSH-Zugang ==== Wir kommen nicht umher, einige Dinge direkt auf dem Linux zu erledigen, und brauchen daher einen aktivierten <span style="color:orange;">SSH Zugang</span> zum NAS und einen SSH-Client, wie z.B. PuTTY. === SeedDMS vorbereiten === ==== Herunterladen und entpacken ==== SeedDMS ist frei verfügbar und kann [https://www.seeddms.org/index.php?id=7 hier] heruntergeladen werden. Im Prinzip muss es nur auf die dafür vorgesehene Freigabe (dms) entpackt werden. Am besten geht das, wenn man das .tar auf die Freigabe kopiert, und den Rest in der SSH Shell erledigt, weil dann die links erhalten bleiben, was wichtig ist! Am Ende sollte das Ganze Paket ohne unnötige Unterordner auf der Freigabe liegen, so dass die Ordner wie 'data' und 'www' etc. direkte Unterordner der Freigabe sind. <pre>tar -xvf seeddms-quickstart-5.1.12.tar</pre> zum Entpacken und dann noch wie gewünscht verschieben: <pre>mv seeddms51x/* .</pre> ==== PHP ==== SeedDMS ist der Meinung, es braucht PHP Version <span style="color:orange;">5.6.38</span>, aber auf meinem NAS mit PHP Version <span style="color:orange;">5.5.22</span> läuft es auch, man muss sich nur durch die Installation mogeln ;) Dazu wird folgende Datei verändert: <ins>/inc/inc.ClassSettings.php</ins> <pre>if (version_compare(PHP_VERSION, '5.6.38') < 0) {</pre> austauschen gegen: <pre>if (version_compare(PHP_VERSION, '5.5.22') < 0) {</pre> ==== MySQL ==== Es muss eine <span style="color:orange;">MySQL Datenbank</span> bereitgestellt werden, auf die SeedDMS Zugriff erhält. ==== SeedDMS konfigurieren ==== Vor der Installation muss man die Datei /conf/settings.xml an die Gegebenheiten des NAS anpassen, was absolute Pfade auf dem Dateisystem (/i-data/...) und relative Pfade im Browser (/MyWeb/dms/...) angeht und auch die Benutzerdaten für die Datenbank. Um eine Browserinstallation zu ermöglichen, muss noch die Datei <span style="color:orange;">conf/ENABLE_INSTALL_TOOL</span> angelegt werden, die nach der Installation unbedingt wieder gelöscht werden muss! === SeedDMS installieren === Jetzt kann man SeedDMS über den Browser installieren: <span style="color:orange;"><nowiki>https://NAS:5001/MyWeb/dms/www/install/install.php</nowiki></span> == Tesseract OCR und Ghostscript auf ZyXEL NAS == Damit aus dem schönen Dokumentenmanagementsystem auch etwas richtig schickes wird, sollte man es um eine OCR (Optical Character Recognition) erweitern. Hierzu eignet sich das freie tool <span style="color:orange;">tesseract</span>. Es kann Texte aus Bilddateien herauslesen, die dann von SeedDMS in der Datenbank als Schlüsselbegriffe für die Volltextsuche gespeichert werden. PDFs müssen zuerst in eine Grafik (z.B. TIFF) umgewandelt werden, und können dann mit tesseract gescannt werden. Für die Umwandlung verwende ich <span style="color:orange;">Ghostscript</span>. Aber sowohl tesseract als auch Ghostscript müssen für das Linux auf dem NAS selber gebaut / kompiliert werden. Das Linux auf dem NAS eignet sich aber kaum dafür, da es nicht mal apt-get gibt und so die dependencies mühsam manuell installiert werden müssten. === Raspberry Pi 3 als build machine === Ein <span style="color:orange;">Raspberry Pi 3</span> mit Raspbian eignet sich hervorragend zum Bauen der erforderlichen tools, weil die Hardware ähnlich ist und die gebauten binaries auf dem NAS lauffähig sind! Man kann hier dieser [https://github.com/tesseract-ocr/tesseract/wiki/Compiling Anleitung] folgen. Im Wesentlichen muss Folgendes passieren: # sudo apt-get update # sudo apt-get install g++ # sudo apt-get install autoconf automake libtool # sudo apt-get install pkg-config # sudo apt-get install libpng-dev # sudo apt-get install libjpeg8-dev # sudo apt-get install libtiff5-dev # sudo apt-get install zlib1g-dev # sudo apt-get install libleptonica-dev # [https://github.com/tesseract-ocr/tesseract tesseract] und [https://github.com/ArtifexSoftware/ghostpdl Ghostscript] sources holen und auf den Raspberry bringen. Im <span style="color:orange;">tesseract</span> Verzeichnis: # ./autogen.sh # ./configure --prefix=/i-data/sysvol/dms/tools # make # make install Das baut und installiert tesseract in das Verzeichnis <ins>tools</ins>, damit wir es gesondert packen und wegholen können. Beim Ausführen auf dem NAS merkt man jedoch, dass dort einige libraries fehlen. Also holt man sich diese noch dazu: * liblept.so.5 * libgomp.so.1 * libc.so.6 * libgif.so.7 * libgomp.so.1 * libjbig.so.0 * libjpeg.so.62 * liblept.so.5 * liblzma.so.5 * libopenjp2.so.7 * libpng16.so.16 * libpthread.so.0 * libstdc++.so.6 * libtiff.so.5 * libwebp.so.6 Außerdem braucht man noch [https://tesseract-ocr.github.io/tessdoc/Data-Files Trainingsdateien] für z.B. Deutsch und/oder Englisch, was die Texterkennung verbessert. Diese müssen in .../share/tessdata kopiert werden. Jetzt kann man das tesseract bundle TAR im tools Verzeichnis bauen: <pre>tar -cvf tesseract-bundle.tar *</pre> <span style="color:orange;">Ghostscript</span> wird auf ähnliche Weise gebaut. Es empfiehlt sich, aber das <ins>tools</ins> Verzeichnis vorher zu löschen, um 2 separate Bundles machen zu können. # ./configure --prefix=/i-data/sysvol/dms/tools # make # make install Libraries hinzuzufügen ist hier nicht nötig, tesseract beinhaltet diese bereits. Für ein wirklich unabhängiges Ghostscript müsste man die natürlich wieder zusammensuchen. Jetzt kann man auch das Ghostscript TAR im tools Verzeichnis bauen: <pre>tar -cvf ghostscript.tar *</pre> === Die 2 tools aufs NAS bringen === tesseract und ghostscript werden auf dem NAS nach <ins>/i-data/sysvol/dms/tools</ins> befördert, am besten mit dem TARs, die an Ort und Stelle entpackt werden. Gestartet wird tesseract z.B. so: <pre>/i-data/sysvol/dms/tools/bin/tesseract --tessdata-dir /i-data/sysvol/dms/tools/share/tessdata -l de+eng $1 $2</pre> Analog dazu Ghostscript: <pre>/i-data/sysvol/dms/tools/bin/gs -dBATCH -dNOPAUSE -sDEVICE=tiffgray -r175 -sOutputFile=$2 $1</pre> wobei $1 jeweils die Quell und $2 die Zieldatei beinhalten. === Ein Skript, das alles kann === Richtig gut funktionert hat das Ganze erst mit einem "umfassenden" Skript, das ghostscript und tesseract geschickt ansteuert und den output an das aufrufende SeedDMS weitergibt. Hierbei sollten die eigenen Outputs der tools mit <pre>> /dev/null 2>&1</pre> ausgeblendet werden, da sie das Zurückgegebene stören. Das Resultat soll vielmehr in eine temporäre Textdatei erfolgen, deren Inhalt dann kontrolliert ans DMS übergeben wird. be5d2d6b197a31618848ab8422f0ff72b9d5413a VMWare 0 2674 3141 2024-02-16T15:28:56Z Satria 1 Die Seite wurde neu angelegt: „== Disable Side Channel mitigation == Keine Ahnung, was das überhaupt bedeutet, aber man findet keine Einstellmöglichkeit, so wie von der Meldung selbst beha…“ wikitext text/x-wiki == Disable Side Channel mitigation == Keine Ahnung, was das überhaupt bedeutet, aber man findet keine Einstellmöglichkeit, so wie von der Meldung selbst behauptet, in den Erweiterten Einstellungen der VM. Abschalten lässt sich die (ggf. störende?) Funktion direkt in der .vmx Datei: ulm.disableMitigations = "TRUE" muss hinzugefügt werden, und fertig. 590cdd56015d549351db3ee987a3a7b9a9975d0b Windows 10 0 2646 3144 3055 2024-04-26T21:46:31Z Satria 1 /* Hintergrund-Apps deaktivieren */ wikitext text/x-wiki Einige Neuerungen in Windows 10 sind nützlich, andere nervig. Welche nützlich und welche nervig sind, beurteilt natürlich jeder für sich. Hier ein paar tweaks, um Windwos 10 einige (wie ich persönlich finde) nervige Dinge abzugewöhnen: == Besondere Ordner == Wer die vordefinierten Orte (Dokumente, Musik, ...) nutzen, aber ihren Speicherort frei wählen möchte, hat etwas Arbeit vor sich. Im Benutzerprofilordner (im Explorer oberhalb von "Dieser PC") werden u.A. alle vordefinierten Orte angezeigt und liegen zunächst auch physisch dort (z.B. C:\Users\Benutzer\Documents). Mit einem Rechtsklick auf einen dieser Orte bzw. Ordner und "Eigenschaften" -> "Pfad" lässt sich der Ort auf einen anderen Ordner (auch anderen Laufwerk) umleiten. So weit so gut. Wenn man jetzt aber einen Profilordner auf einem anderen Laufwerk hat (z.B. D:\User), in dem verschiedene Apps ihre Einstellungen ablegen sollen (nicht AppData), aber die Dokumente einen eigenen Unterordner haben sollen (D:\User\Documents), kommen sich die Einstellungen etwas in die Quere. Ich halte zunächst mal fest: Der Registry-Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\{F42EE2D3-909F-4907-8871-4C22FC0BF756}] </pre> definiert, wohin "Documents" (Dokumente) im Benutzerprofilordner zeigt. Der Pfad <pre> [Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal] </pre> definiert den Order, in dem man landet, wenn man "Dokumente" aus dem Startmenü ganz links öffnet, vorausgesetzt, man hat in den Einstellungen die Ordnersymbole dort aktiviert. Normalerweise möchte man auf beiden Shortcuts imselben Ordner landen (D:\User\Documents). Aber damit der der eigene Benutzerprofilordner (D:\User) von Apps benutzt wird, um in separaten Unterordnern Einstellungen abzulegen, muss "Personal" auf "D:\User" zeigen. Damit öffnet man auf das "Dokumente"-Symbol im Startmenü allerdings nicht wirklich seinen Dokumente-Ordner. == Explorer tweaks == === Archive nicht als Ordner anzeigen === Wie auch schon in Windows 7 und 8, müssen hier 2 Registry-Einträge entfernt werden, damit Archive (ZIP und CAB) nicht als Ordner im Explorer-Navigationsbaum angezeigt werden: (für ZIP Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}]</pre> (für CAB Dateien)<br> <pre>[-HKEY_CLASSES_ROOT\CLSID\{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}]</pre> === Bibliotheken nicht im Explorer anzeigen === Hierfür gibt es auch eine clickbare Einstellung in Windows. Aber bevor man die findet... Ebenso lassen sich die Bibliotheken per Registry-Eintrag ein- (1) oder ausschalten (0): <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] </pre> (ggf. für 64 bit außerdem:) [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\System.IsPinnedToNameSpaceTree] === Doppelte USB Laufweke im Explorer entfernen === USB Laufwerke werden im Explorer Navigationsbaum doppelt dargestellt. Unter "Dieser PC", neben allen anderen Laufwerken und nochmal separat neben "Dieser PC" auf demselben Level, wo auch Netzwerk und Bibliotheken etc. sind. Muss das sein? Nein! Um die doppelten Einträge loszuwerden, müssen 2 Registry-Einträge entfernt werden: <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> <pre>[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\DelegateFolders\{F5FB2C77-0E2F-4A16-A381-3E560C68BC83}]</pre> === OneDrive aus Explorer entfernen === Wer OneDrive weder nutzt noch im Explorer sehen möchte, ändert diese Registry-Werte von 1 auf 0: <pre> [Computer\HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> (für 64 bit außerdem:) <pre> [Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree] </pre> == Senden an / SendTo bearbeiten == Der Ordner, in dem sich die Verknüpfungen befinden, die bei "Senden an" angezeigt werden, befindet sich unter <pre>C:\Users\<Benutzer>\AppData\Roaming\Microsoft\Windows\SendTo</pre> Man erreicht ihn auch mit dem Kommando: <pre>shell:sendto</pre> in der Ausführen-Box des Startmenüs (Win+R). == Wischgesten / Randfunktionen von Touchpads == Das Thema hier trifft nur auf Laptops mit Touchpad zu. Wischt man vom äußersten linken Rand nach rechts öffnet sich eine Liste mit aktiven Anwendungen wie bei WIN+TAB. Abschalten kann man das in den Gruppenrichtlinien, die man wie folgt aufruft: WIN halten + R drücken. Es öffnet sich die "Ausführen" Box, in die man ''gpedit.msc'' eintippt und OK klickt. Jetzt klappt man diesen Zweig auf: Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Rand-UI [[Datei:Win10-Rand-Gesten.png|250px|thumb|right]]<br clear="all"> und editiert den rechts markierten Eintrag ''Wischen vom Bildschirmrand zulassen'' und setzt ihn auf ''Deaktiviert''. == Netzwerkordner in Bibliotheken == Beim Versuch, einen Netzwerkort oder ein Netzlaufwerk in eine Bibliothek aufzunehmen stößt man auf das Problem "Die Netzwerkadresse kann nicht einbezogen werden, da sie nicht indiziert ist". Man müsste einen Ordner X anlegen, darin einen symbolischen Link auf das Netzwerk-Share und dann den Ordner X in die Bibliothek aufnehmen. Das bedeutet aber eine unnötige Ebene in der Bibliothek, denn man muss X immer aufklappen und findet nur 1 Element darin - den Symlink auf das Netzwerk-Share. Hier kann man etwas tricksen! Man erstellt an einem beliebigen geeigneten Ort einen Ordner, der so heißt, wie er später in der Bibliothek heißen soll, sagen wir "NAS". Diesen nimmt man in die gewünschte Bibliothek auf. Dann löscht man ihn wieder aus dem Verzeichnis, nicht aber aus der Bibliothek! Jetzt erstellt man am gleichen Ort einen Symlink auf das Netzwerk-Share mit demselben Namen, den vorher der Ordner hatte! Und schon greift NAS aus der Bibliothek nun auf das Netzwerk-Share zu :) == Timeline nicht in die Cloud hochladen == Diese Funktion kam mit dem 1803 Update. Offenbar werden bestimmte Benutzeraktivitäten zu Microsoft hochgeladen. Das kann man abschalten, indem man in den Gruppenrichtlinen (gpedit.msc) Administrative Vorlagen/System/Betriebssystemrichtlinien alle drei auf „Deaktiviert“ umschaltet. Mit dem 1903 Update sind es jetzt 5 Optionen. Nach meinem Verständnis lädt "Zwischenablageverlauf zulassen" nichts zu irgendeinem Server hoch. == Geplante Tasks abschalten == Es gibt einige Aufgaben, die dazu führen, dass der PC mehr oder regelmäßig aus dem Schlaf geholt wird. Ich persönlich möchte das nicht. Ich bestimme das selber, wann er aufwachen soll und wann er im Standby bleiben soll. Die Tasks, die zum Aufwecken führen können, findet man mit <pre>powercfg -waketimers</pre> heraus und kann sie dann über die Aufgabenbibliothek deaktivieren. === Fehlende Berechtigungen 1 === Es kann sein, dass man nicht über die Berechtigungen verfügt, bestimmte Tasks abzuschalten. Das kann über das Dateisystem umgangen werden, wo man sich als Admin diese Rechte geben kann. Der Pfad für die Aufgabenplanung lautet: <pre>C:\Windows\system32\Tasks\</pre> Die teilweise gesperrten Tasks liegen weiter unter Microsoft\Windows\... In einer DOS Box wechselt man in das Verzeichnis, in dem der zu entsperrende Task liegt und gibt Folgendes ein: <pre>cacls Taskfilename /e /g "Username":F</pre> Ist die Datei des Tasks dann entsperrt, kann man den geplanten Task in der Aufgabenplanung editieren und deaktivieren. === Fehlende Berechtigungen 2 === [[Datei:NSudo.png|200px|thumb|right]]Eine andere Methode, den fehlenden Berechtigungen zu begegenen ist [https://www.majorgeeks.com/files/details/nsudo.html NSudo]. Mit diesem Tool kann man eine DOS-Box mit den Berechtigungen des "Trusted Installer" starten und hier den Befehl absetzen:<br clear="all"> <pre>SCHTASKS /Change /TN "Microsoft\Windows\UpdateOrchestrator\Reboot" /DISABLE</pre> (für den Task "Reboot", der einer der Tasks ist, die den PC regelmäßig wecken) Um zu verhindern, dass das System den Task selbständig wieder reaktiviert, kann man ihm die Berechtigungen entziehen: <pre>icacls "%WINDIR%\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot" /inheritance:r /deny "Jeder:F" /deny "SYSTEM:F" /deny "Lokaler Dienst:F" /deny "Administratoren:F"</pre> Die verwendeten Usernamen sind sprachenabhängig und lauten auf Systemen anderer Sprachen entsprechend anders. === Andere Geräte finden, die den PC aufwecken können === <pre>powercfg -devicequery wake_armed</pre> zeigt alle Geräte, die so konfiguriert sind, dass sie den PC aufwecken können. == Hintergrund-Apps deaktivieren == Warum sollte man das tun? Weil eventuell nicht benötigte Apps ständig und automatisch im Hintergrund aktiv sind und die CPU Last in die Höhe treiben und insgesamt einfach unnötig Ressourcen verbrauchen. Abschalten kann man die unerwünschten Aktivitäten in den Windows 10 Einstellungen über <pre>Datenschutz -> Hintergrund-Apps</pre> Hier wahlweise an- oder abschalten. === CompatTelRunner === Dieser unnötige Prozess, der zeitweise richtig viel CPU Last erzeugen kann, steckt in der Aufgabenplanung unter Aufgabenplanungsbibliothek -> Microsoft -> Windows -> Application Experience Hier kann diese geplante Aufgabe deaktiviert werden. == Unnötige Apps entfernen == Im Ordner <code>C:\Program Files\WindowsApps</code> gibt es einen Ordner "Deleted", der große Datenmengen beinhalten kann. Um diese zu entfernen soll sich dieser Befehl eignen, einzugeben in einer PowerShell mit hohen Berechtigungen: <pre>remove-AppxProvisionedPackage -package [Paketname] -online</pre> == Administrative Freigaben aktivieren == Um auf die vordefinierten administrativen Freigaben wie C$ oder C$ usw. zuzugreifen müssen ein paar Dinge aktiviert werden: # Der Administrator muss aktiviert werden (ist standardmäßig deaktiviert) (Computerverwaltung, Benutzer) # Die Datei und Druckerfreigabe muss aktiviert werden (Firewall) # Ein Registrierungsschlüssel muss angelegt werden:<br><pre>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy (DWORD 32) = 1</pre> Jetzt kann man aus dem Netzwerk auf die Freigaben \\Computer\C$ usw. zugreifen. == Updates verhindern == Das leidige Thema "automatische Updates", und dass man seit Windows 10 nicht wirklich etwas dagegen tun kann. Man kann die Netzwerkverbindung als "getaktete Verbindung" konfigurieren, was einige Updates wohl fernhält, aber manche werden dennoch erzwungen. Weitere Möglichkeiten offenbart das Tool [https://www.softpedia.com/get/Tweak/System-Tweak/Wu10Man.shtml Wu10Mam], das man installieren und einfach bedienen kann. Man kann aber auch daraus lernen und die Einstelungen mit ein paar Handgriffen selber erledigen: === Dienste deaktivieren === # Windows Update # Windows Update Medic # Windows Modules Installer === Gruppenrichtlinien anpassen === <pre>Computerkonfiguration -> Windows-Komponenten -> Windows Update -> Automatische Updates konfigurieren</pre> wird aktiviert, und in den Optionen kann dann das gewünschte Verhalten ausgewählt werden, z.B.: 2 - Vor Download und automatischer Installation benachtichtigen. Oder diese Einstellung wird komplett deaktiviert. === hosts Datei anpassen === Ganz perfide ist, wenn man Windows den Zugriff auf sämtliche Update-Server verbietet. Das geht, in dem man die verantwortlichen URLs in der Datei <pre>C:\Windows\system32\drivers\etc\hosts</pre> mit der IP 0.0.0.0 einträgt. === Treiberupdates verhindern === Normalerweise werden Gerätetreiber zusammen mit den Windows-Updates aktualisiert. Das kann nicht selten zu Problemen führen, denn nicht immer funktioniert der neueste Treiber eines Gerätes am besten mit den übrigen Komponenten im System. Verhindern lässt sich das automatische Treiberupdate so: Gruppenrichtlinien bearbeiten (gpedit.msc) -> Computerkonfiguration -> Administrative Vorlagen -> Windows-Komponenten -> Windows Update -> "Keine Treiber in Windows-Updates einschließen" -> Aktiviert == Unattended Idle Timer == Standardmäßig gibt es ein Return-To-Sleep feature (schon ab Windows 7), das auf 120s eingestellt ist. Dieser Timer greift, wenn das System aus dem Standby aufgeweckt wird, aber keine Aktivität an Maus oder Tastatur verzeichnen kann. Dann fährt es nach der eingestellten Zeit wieder in den Standby. Um das zu verhindern, sollte man erst eine versteckte Einstellung in den Energieoptionen freischalten: <pre>powercfg -attributes SUB_SLEEP 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0 -ATTRIB_HIDE</pre> Jetzt kann über einen Rechtsklick auf das <code>Windows-Icon unten links Energieoptionen -> Zusätzliche Energieeinstellungen -> Energiesparmodus ändern -> Erweiterte Energieeinstellungen ändern</code> im Knoten <code>Energie sparen -> Leerlaufzeit nach unbeaufsichtigter Reaktivierung</code> 2 beliebige Zeiten für den Netz- und Akkubetrieb einstellen, wobei 0 das Deaktivieren darstellt. == SMB Zugriff auf ältere Geräte (NAS) == [[File:SMB-Client-1.0.png|thumb|right|SMB-Client-1.0.png]]Es kann vorkommen, dass die Ordnerfreigabe eines älteren Servers (z.B. NAS) nicht unter Windows 10 erreichbar ist. In dem Fall muss man in den Windows-Features das SMB 1.0 Protokoll wieder aktivieren:<br clear="all"/> == ESD in WIM umwandeln == Zur Erstellung eines Windows 10 PE kann es erforderlich sein, die <code>install.esd</code> im <code>sources</code> Verzeichnis der ISO in eine <code>install.wim</code> zu konvertieren. Das geht wie folgt: # ISO Datei entpacken (z.B. mit 7Zip) # Administrator-DOS Box in dem <code>sources</code>-Verzeichnis öffnen. # Mit dem Befehl<br><code>dism /get-wiminfo /wimfile:install.esd</code><br>den Index ermitteln, der zur gewünschten Windows-Edition führt. Vermutlich "Windows 10 Pro". Angenommen, die Pro hat den Index 5. # Der Befehl<br><code>dism /Export-Image /SourceImageFile:install.esd /SourceIndex:5 /DestinationImageFile:install.wim /Compress:Max /CheckIntegrity</code><br>konvertiert jetzt den Inhalt aus der <code>install.esd</code> für Windows 10 Pro in eine <code>install.wim</code>. Die ESD kann gelöscht werden. In so Tools wie "WinBuilder" kann das Verzeichnis jetzt als Quelle verwendet werden. == Weiße Fenster bei Fernwartung via VNC == Bemerkt wurde dieser Effekt bei Firefox und Thunderbird. Beide zeigten ein rein weißes Fenster, wenn über VNC auf den Rechner zugegriffen wurde. Die Lösung ist das Abschalten der Grafik-Hardwarebeschleunigung, da seit Windows 8 diese nicht ausgeführt wird, wenn der Monitor aus (geschlossen) ist. == Sperrbildschirm Hintergrundbilder == Die teilweise sehr eindrucksvollen Bilder, die dem Benutzer von Windows präsentiert werden, werden lokal zwischengespeichert, und man kann sie sich von dort wegkopieren. Der Pfad dorthin ist: <pre>C:\Users\Satria.Sudewo\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets</pre> Hier liegen die Bilder ohne Erweiterung und mit einem seltsamen Namen vor (GUID). Es sind aber JPEGs und können einfach von hier an einen beliebigen Ort kopiert und dort dann in xxx.jpg umbenannt werden. == Bootmanager und EFI == === EFI Partition verfügbar machen === In einer Adminstrator-DOS-Box wir der Befehl <pre>mountvol a: /s</pre> ausgeführt, wobei a: aus den noch freien Laufwerksbuchstaben frei wählbar ist. Danach ist die EFI-Systempartition unter dem Laufwerk A: verfügbar - allerdings nur für einen Explorer im Admin-Mode oder aber gleich in der noch offenen Administrator-DOS Box. === Bootmanager unter UEFI installieren === Um Windows unter UEFI booten zu können, braucht es eine EFI-Startpartition, die man mit diesem Kommando füllen kann: bcdboot C:\Windows /s A: /f UEFI unter Annahme, dass A: die EFI-Startpartition sei und in C:\Windows die Windows-Installation ist, die gebootet werden soll. Natürlich wird das bei der Windows-Installation durch das Setup gemacht, aber es kann von Nutzen sein, wenn man z.B. von MBR auf GPT umstellt und dabei auch den Datenträger wechselt. === BCDedit === Das EFI Bootmanager Editier-Tool. Mit diesem Tool kann der Windows-Bootmanager verwaltet werden. Einträge hinzufügen, löschen, als Default setzen etc. Wenn das UEFI den Windows-Bootmanager startet, entscheidet dieser ab diesem Zeitpunkt, wie es weitergeht. Hier könnten dann z.B. mehrere Windows zur Auswahl stehen, die dann per Menü gebootet werden können. === EFI-Systempartition === Es hat einen Grund, warum diese Partition unter Windows so heißt, denn sie hat eine ganz bestimmte ID, einen ganz bestimmten Partitionstyp, und das ist wichtig! Zwar funktioniert der EFI-Bootvorgang auch, wenn es sich um eine normale Primäre Partitin mit FAT oder FAT32 handelt, aber Windows hat dann keine korrekte Verbindung zum UEFI System, was sich so äußern kann, dass der Energiesparmodus nicht verfügbar ist, sowie auch der Ruhezustand. Windows schaltet sich einfach nicht ab. Außerdem meldet bcdedit "Der Speicher für die Startkonfigurationsdaten konnte nicht geöffnet werden." ganz einfach weil es keine EFI-Systempartition gibt. Dieses seltene Szenario kann auftreten, wenn man sein System z.B. händisch von einem MBR Datenträger auf einen GPT Datenträger migriert hat und jetzt mit UEFI booten möchte. Die EFI-Systempartition sollte dabei mit dem tool "diskpart" erstellt werden, ungefähr so: DISKPART> CREATE PARTITION EFI wobei es sein kann, dass man hier keinen Einfluss auf Größe und Position nehmen kann. Deshalb ist es auch möglich eine wunschgemäß erzeugte Primäre Partition, die die EFI-Startdateien trägt, nachträglich in eine EFI-Systempartition umzuwandeln: DISKPART> SELECT DISK #A DISKPART> SELECT PARTITION #B DISKPART> SET ID=c12a7328-f81f-11d2-ba4b-00a0c93ec93b wobei #A die Nummer des Datenträgers ist und #B die Nummer der Partition, die umgewandelt werden soll. c12a7328-f81f-11d2-ba4b-00a0c93ec93b ist hierbei die offizielle GUID für eine EFI-Systempartition. === GRUB2 unter Windows installieren === [[GRUB2]] == Monitor Farbverwaltung == Coming soon... == Quellen == http://blog.ryankempt.com/2012/09/windows-library-add-non-indexed-location.html https://www.com-magazin.de/praxis/windows-explorer/ordneransicht-in-windows-7-vereinheitlichen-52903.html?page=2_ordnertyp-vereinheitlichen https://www.winhelponline.com/blog/remove-quick-access-other-shell-folders-file-explorer https://www.repairwin.com/enable-admin-shares-windows-10-8-7/ https://support.mozilla.org/de/questions/1097257 https://www.tekrevue.com/tip/find-windows-spotlight-lock-screen-images-windows-10/ https://www.tenforums.com/tutorials/48507-enable-disable-edge-swipe-screen-windows-10-a.html https://answers.microsoft.com/en-us/windows/forum/windows_10-update/administrator-account-not-allowed-to-disable/d82c7ffa-f4c2-4622-9a78-1e9bb9e51d71 https://www.notebookcheck.com/Monitor-Farbprofile-unter-Windows-10-richtig-installieren-und-zuweisen.266516.0.html 36b63604884d91fc512d0f8e229fd7344b26fb53 Windows 11 0 2675 3147 2024-09-19T10:26:49Z Satria 1 Die Seite wurde neu angelegt: „== Installation == === Windows 11 ohne Internet / Netzwerk installieren === Dies gilt für die Installation per USB-Stick: An dem Punkt, an dem man seine WLAN…“ wikitext text/x-wiki == Installation == === Windows 11 ohne Internet / Netzwerk installieren === Dies gilt für die Installation per USB-Stick: An dem Punkt, an dem man seine WLAN Verbindung einrichten soll, kommt man - wenn man dies nicht wünscht - nur weiter, indem man: # Shift+F10 drückt, um eine DOS Box zu öffnen. # und den Befehl C:\Windows\System32\oobe\bypassnro.cmd ausführt. Nach dem automatisch ausgeführten Neustart, kann man die Stelle mit "Ich habe kein Internet" abbrechen. 219d81c24148ec336cd8b464c890e750ddbfb4db 3165 3147 2025-02-13T11:36:07Z Satria 1 wikitext text/x-wiki == Installation == === Windows 11 ohne Internet / Netzwerk installieren === Dies gilt für die Installation per USB-Stick: An dem Punkt, an dem man seine WLAN Verbindung einrichten soll, kommt man - wenn man dies nicht wünscht - nur weiter, indem man: # Shift+F10 drückt, um eine DOS Box zu öffnen. # und den Befehl C:\Windows\System32\oobe\bypassnro.cmd ausführt. Nach dem automatisch ausgeführten Neustart, kann man die Stelle mit "Ich habe kein Internet" abbrechen. == Explorer, Desktop und Startmenü tweaks == === Windows 10 - style Kontextmenü === Wer sich im Kontextmenü den extra Klick auf "Weitere Optionen anzeigen" sparen und direkt das gewohnte vollständige Kontextmenü sehen möchte, führt diesen Befehl aus, der einen sehr einfachen Registry-Eintrag hinzufügt: reg.exe add "HKCU\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32" /f /ve Dies erzeugt den Schlüssel: HKEY_CURRENT_USER\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32 Explorer-Instanzen neustarten und man hat wieder das alte Kontextmenü. be4e7ab1060877f8a32317e702c3a2ec59dfa069 3166 3165 2025-02-13T11:45:21Z Satria 1 wikitext text/x-wiki == Installation == === Windows 11 ohne Internet / Netzwerk installieren === Dies gilt für die Installation per USB-Stick: An dem Punkt, an dem man seine WLAN Verbindung einrichten soll, kommt man - wenn man dies nicht wünscht - nur weiter, indem man: # Shift+F10 drückt, um eine DOS Box zu öffnen. # und den Befehl C:\Windows\System32\oobe\bypassnro.cmd ausführt. Nach dem automatisch ausgeführten Neustart, kann man die Stelle mit "Ich habe kein Internet" abbrechen. == Explorer, Desktop und Startmenü tweaks == === Windows 10 - style Kontextmenü === Wer sich im Kontextmenü den extra Klick auf "Weitere Optionen anzeigen" sparen und direkt das gewohnte vollständige Kontextmenü sehen möchte, führt diesen Befehl aus, der einen sehr einfachen Registry-Eintrag hinzufügt: reg.exe add "HKCU\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32" /f /ve Dies erzeugt den Schlüssel: [HKEY_CURRENT_USER\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32] Explorer-Instanzen neustarten und man hat wieder das alte Kontextmenü. === Windows 10 ähnliches Startmenü === Um ein Startmenü zu haben, das dem von Windows 10 zumindest ähnelt, legt man diesen Wert in der Registry an: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Start_ShowClassicMode"=dword:00000001 Ein Neustart kann erforderlich sein. df81289c848dbfb219db92a004eedf0d82adcb6d Datei:Codec Tweaks (PUBG).png 6 2676 3157 2025-02-08T20:41:39Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 Player Unknown's Battle Ground 0 2677 3158 2025-02-08T20:42:48Z Satria 1 Die Seite wurde neu angelegt: „== Fehlerbehebung == Wenn PUBG nicht startet und man nur ein schwarzes Bild sieht, der Prozess aber aktiv ist und auch Speicher belegt, dann kann es sein, dass…“ wikitext text/x-wiki == Fehlerbehebung == Wenn PUBG nicht startet und man nur ein schwarzes Bild sieht, der Prozess aber aktiv ist und auch Speicher belegt, dann kann es sein, dass die Intro-Videos nicht abgespielt werden können. Damit sie abgespielt werden können, müssen folgende Windows Codecs enabled sein: [[Datei:Codec Tweaks (PUBG).png]] 2b212c1df7fe5148240b596951faa1d352789796 Datei:Codec Tweaks (EVERSPACE2).png 6 2678 3160 2025-02-08T20:45:54Z Satria 1 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 EVERSPACE 2 0 2679 3161 2025-02-08T20:46:10Z Satria 1 Die Seite wurde neu angelegt: „== Fehlerbehebung == === Zwischensequenzen sind nicht sichtbar === Um die Zwischensequenzen (Videos) zu sehen, müssen folgende Windows Codecs enabled sein: …“ wikitext text/x-wiki == Fehlerbehebung == === Zwischensequenzen sind nicht sichtbar === Um die Zwischensequenzen (Videos) zu sehen, müssen folgende Windows Codecs enabled sein: [[Datei:Codec Tweaks (EVERSPACE2).png]] c4a9c19e675601cc80a628afababd2fd0090ef65 Game hacks 0 2680 3163 2025-02-09T23:31:59Z Satria 1 Die Seite wurde neu angelegt: „Hierbei handelt es sich nicht um hacks im Sinne von Cheats, sondern um Workarounds, die Probleme beseitigen. [[EVERSPACE 2]]<br> Indiana Jones and The Great…“ wikitext text/x-wiki Hierbei handelt es sich nicht um hacks im Sinne von Cheats, sondern um Workarounds, die Probleme beseitigen. [[EVERSPACE 2]]<br> [[Indiana Jones and The Great Circle]]<br> [[Player Unknown's Battle Ground]] (PUBG)<br> d164863a9ea54ade0c8f513cbfe4f681d5d7388b Indiana Jones and The Great Circle 0 2681 3164 2025-02-09T23:36:03Z Satria 1 Die Seite wurde neu angelegt: „== Spiel startet nicht == Unter den Spieledateien befindet sich ein Ordner "GamingRepair", der gelöscht werden oder in etwas anderes wie z.B. "GamingRepair_"…“ wikitext text/x-wiki == Spiel startet nicht == Unter den Spieledateien befindet sich ein Ordner "GamingRepair", der gelöscht werden oder in etwas anderes wie z.B. "GamingRepair_" umbenannt werden muss. Oder anders ausgedrückt: Wenn die "GamingRepair.exe" gefunden wird, kann das Spiel nicht starten. Wird hoffentlich noch seitens Bethesda behoben. 2d26acd1092307b7a889e03d5f522356fb8ec0b5 3167 3164 2025-02-21T02:54:28Z Satria 1 wikitext text/x-wiki == Spiel startet nicht == Unter den Spieledateien befindet sich ein Ordner "GamingRepair", der gelöscht werden oder in etwas anderes wie z.B. "GamingRepair_" umbenannt werden muss. Oder anders ausgedrückt: Wenn die "GamingRepair.exe" gefunden wird, kann das Spiel nicht starten. Wird hoffentlich noch seitens Bethesda behoben. '''Mit dem Update vom 20.02.2025 ist dieser workaround hinfällig''' e7aa9e5d4d5f75cace003d9a806715e86489dad2 Linux 0 13 3168 3145 2025-03-01T09:58:24Z Satria 1 /* USB HDD */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ntfs /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 71b849d133af33b4d693d42176ddec8166d094b5 3169 3168 2025-03-01T10:10:19Z Satria 1 /* Mounten */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 88da7f4bb3a76fc03e91073783ab29376b6da91c 3170 3169 2025-03-01T13:14:32Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 02dfa260da7cd7bf7ed6cd0b125726be50f12c23 3171 3170 2025-03-01T19:03:23Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen ;ldappasswd:Das Passwort eines LDAP Benutzers ändern ;net getlocalsid:Die SID des Systems abfragen. Wichtig für das Bilden von Benutzer-SIDs == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm b24fdb71847942cf7723d13c8a427fe7cd37f9bb 3172 3171 2025-03-01T19:29:04Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen ;ldappasswd:Das Passwort eines LDAP Benutzers ändern ;net getlocalsid:Die SID des Systems abfragen. Wichtig für das Bilden von Benutzer-SIDs == SAMBA Server == Ein SAMBA-Server (Windows-Freigaben) lässt sich per sudo apt-get install -y samba samba-common smbclient installieren. Es werden 2 Serivces installiert: smbd und nmbd Einige wichtige Kommandos sind: ;pdbedit:Verwaltet Benutzer und Passwörter ;smbpasswd:Ändert das Passwort eines SAMBA-Benutzers == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm e3108e686151e5596e16f191e7dae07cf08bf2a5 3173 3172 2025-03-02T03:37:19Z Satria 1 /* SAMBA Server */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen ;ldappasswd:Das Passwort eines LDAP Benutzers ändern ;net getlocalsid:Die SID des Systems abfragen. Wichtig für das Bilden von Benutzer-SIDs == SAMBA Server == Ein SAMBA-Server (Windows-Freigaben) lässt sich per sudo apt-get install -y samba samba-common smbclient installieren. Es werden 2 Serivces installiert: smbd und nmbd Einige wichtige Kommandos sind: ;pdbedit:Verwaltet Benutzer und Passwörter ;smbpasswd:Ändert das Passwort eines SAMBA-Benutzers ;testparm:Listet die aktuell geladene Konfiguration auf == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 651594729d91e4b3c6f260ec153ed3f945d25cfb 3174 3173 2025-03-02T04:36:35Z Satria 1 /* SAMBA Server */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen ;ldappasswd:Das Passwort eines LDAP Benutzers ändern ;net getlocalsid:Die SID des Systems abfragen. Wichtig für das Bilden von Benutzer-SIDs == SAMBA Server == Ein SAMBA-Server (Windows-Freigaben) lässt sich per sudo apt-get install -y samba samba-common smbclient installieren. Es werden 2 Serivces installiert: smbd und nmbd Eine SAMBA-Freigabe unterstützt diese Eigenschaften: <pre> available = yes/no path = /path valid users = user1 user2 user3 user4 @group1 @group2 invalid users = guest admin users = user1 user2 read only = yes/no read list = user3 user4 @group2 write list = user1 user2 @group1 browseable = yes/no public = yes/no guest ok = yes/no create mask = 0660 directory mask = 0770 force user = user1 force create mode = 0660 force directory mode = 2770 delete readonly = yes/no locking = yes/no hide unreadable = yes/no hide files = *.bak, *.tmp caching = yes/no store dos attributes = yes/no nt acl support = yes/no vfs objects = acl_xattr </pre> veraltet: <pre> writeable = yes </pre> Einige wichtige Kommandos sind: ;pdbedit:Verwaltet Benutzer und Passwörter ;smbpasswd:Ändert das Passwort eines SAMBA-Benutzers ;testparm:Listet die aktuell geladene Konfiguration auf == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm e0ac10ec28aeb9d0e829c5070a1d4e07a0bdce8c 3175 3174 2025-03-02T04:40:08Z Satria 1 /* SAMBA Server */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen ;ldappasswd:Das Passwort eines LDAP Benutzers ändern ;net getlocalsid:Die SID des Systems abfragen. Wichtig für das Bilden von Benutzer-SIDs == SAMBA Server == Ein SAMBA-Server (Windows-Freigaben) lässt sich per sudo apt-get install -y samba samba-common smbclient installieren. Es werden 2 Serivces installiert: smbd und nmbd Eine SAMBA-Freigabe unterstützt diese Eigenschaften: <pre> available = yes/no path = /path valid users = user1 user2 user3 user4 @group1 @group2 invalid users = guest admin users = user1 user2 read only = yes/no read list = user3 user4 @group2 write list = user1 user2 @group1 browseable = yes/no public = yes/no guest ok = yes/no create mask = 0660 directory mask = 0770 force user = user1 force group = @group1 force create mode = 0660 force directory mode = 2770 delete readonly = yes/no locking = yes/no hide unreadable = yes/no hide files = *.bak, *.tmp caching = yes/no store dos attributes = yes/no nt acl support = yes/no vfs objects = acl_xattr </pre> veraltet: <pre> writeable = yes </pre> Einige wichtige Kommandos sind: ;pdbedit:Verwaltet Benutzer und Passwörter ;smbpasswd:Ändert das Passwort eines SAMBA-Benutzers ;testparm:Listet die aktuell geladene Konfiguration auf == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm 3f71f60718b8310ecfe3dc3a2f14f43a46d6ba8c 3176 3175 2025-03-02T04:53:55Z Satria 1 /* SAMBA Server */ wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen ;ldappasswd:Das Passwort eines LDAP Benutzers ändern ;net getlocalsid:Die SID des Systems abfragen. Wichtig für das Bilden von Benutzer-SIDs == SAMBA Server == Ein SAMBA-Server (Windows-Freigaben) lässt sich per sudo apt-get install -y samba samba-common smbclient installieren. Es werden 2 Serivces installiert: smbd und nmbd Eine SAMBA-Freigabe unterstützt diese Eigenschaften: <pre> available = yes/no path = /path valid users = user1,user2,user3,user4,@group1,@group2 invalid users = guest admin users = user1,user2 read only = yes/no read list = user3,user4,@group2 write list = user1,user2,@group1 browseable = yes/no public = yes/no guest ok = yes/no create mask = 0660 directory mask = 0770 force user = user1 force group = @group1 force create mode = 0660 force directory mode = 2770 delete readonly = yes/no locking = yes/no hide unreadable = yes/no hide files = *.bak,*.tmp caching = yes/no store dos attributes = yes/no nt acl support = yes/no vfs objects = acl_xattr </pre> veraltet: <pre> writeable = yes </pre> Einige wichtige Kommandos sind: ;pdbedit:Verwaltet Benutzer und Passwörter ;smbpasswd:Ändert das Passwort eines SAMBA-Benutzers ;testparm:Listet die aktuell geladene Konfiguration auf == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm b79202cc1f441e0b78a1f318b8def865781402bf 3179 3176 2025-03-02T11:51:42Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Mounten == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen ;ldappasswd:Das Passwort eines LDAP Benutzers ändern ;net getlocalsid:Die SID des Systems abfragen. Wichtig für das Bilden von Benutzer-SIDs == SAMBA Server == Ein SAMBA-Server (Windows-Freigaben) lässt sich per sudo apt-get install -y samba samba-common smbclient installieren. Es werden 2 Serivces installiert: smbd und nmbd Eine SAMBA-Freigabe unterstützt diese Eigenschaften: <pre> available = yes/no path = /path valid users = user1,user2,user3,user4,@group1,@group2 invalid users = guest admin users = user1,user2 read only = yes/no read list = user3,user4,@group2 write list = user1,user2,@group1 browseable = yes/no public = yes/no guest ok = yes/no create mask = 0660 directory mask = 0770 force user = user1 force group = @group1 force create mode = 0660 force directory mode = 2770 delete readonly = yes/no locking = yes/no hide unreadable = yes/no hide files = *.bak,*.tmp caching = yes/no store dos attributes = yes/no nt acl support = yes/no vfs objects = acl_xattr </pre> veraltet: <pre> writeable = yes </pre> Einige wichtige Kommandos sind: ;pdbedit:Verwaltet Benutzer und Passwörter ;smbpasswd:Ändert das Passwort eines SAMBA-Benutzers ;testparm:Listet die aktuell geladene Konfiguration auf == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm b3d85847a4058b72ce82262b0d8f42348798ec4b 3187 3179 2025-03-11T11:52:40Z Satria 1 wikitext text/x-wiki == Linux-Version ermitteln == Es gibt verschiedene Kommandos, die über die verwendete Linuxversion Aufschluss geben: <pre>uname -a</pre> <pre>cat /proc/version</pre> <pre>cat /etc/*release</pre> <pre>lsb_release -da</pre> == RAID Laufwerk(e) mounten == === Gerätenamen ermitteln === Mit <pre>cat /proc/partitions</pre> und / oder mit <pre>fdisk -l</pre> kann herausgefunden werden, wie die Festplatte bzw. die Partition heißt, die man mounten möchte. Normalerweise heißen sie /dev/sda oder /dev/sdb, und die Partitionen dann /dev/sda1, /dev/sda2 usw. === Assemblen === RAID Partitionen müssen in Linux "assembled" werden. Auch eine einzelne (degraded) Partition. Das geht mit dem Kommando: <pre>mdadm --assemble /dev/md5 /dev/sda3 --run</pre> angenommen, man möchte die einzelne Partition sda3 in das device md5 assemblen. (Normalerweise würde man aber 2 Partitionen (bei RAID 1) zusammen in das device md5 assemblen!) === Mounten === Angenommen, das Verzeichnis /mnt/HDD existiert bereits (und ist leer), dann wird das RAID array wie folgt (schreibgeschützt, -r) hier rein gemounted: mount -r /dev/md5 /mnt/HDD Nun kann man auf den Inhalt des RAID arrays im Verzeichnis /mnt/HDD zugreifen. Für ein automatisches Mounten beim booten, editiet man die /etc/fstab und fügt z.B. für eine CIFS Freigabe Folgendes hinzu: //<NAS-IP>/nfs /mnt/remote_nfs cifs username=user,password=secret,file_mode=0777,dir_mode=0777 0 0 Alternativ kann auch eine Datei mit den Logindaten referenziert werden: //<NAS-IP>/nfs /mnt/remote_nfs cifs credentials=/etc/.smbcred,file_mode=0777,dir_mode=0777 0 0 wobei die Datei /etc/.smbcred so aussieht: username=user password=secret und am besten nur root zugänglich gemacht wird (chmod 600) == Datenträger == === USB HDD === Wir listen erst einmal alle angeschlossenen Datenträger auf: lsblk -o NAME,LABEL,UUID,FSTYPE,FSVER,FSAVAIL,FSUSE%,MOUNTPOINTS Das Ergebnis sei z.B.: <pre> NAME LABEL UUID FSTYPE FSVER FSAVAIL FSUSE% MOUNTPOINTS sda └─sda1 Transfer 19cf2678-e686-45df-b6a6-aa6411bfe008 ext4 1.0 mmcblk0 ├─mmcblk0p1 bootfs 4EF5-6F55 vfat FAT32 455,3M 11% /boot/firmware └─mmcblk0p2 rootfs ce208fd3-38a8-424a-87a2-cd44114eb820 ext4 1.0 51,1G 8% / </pre> In dem Fall würde die Festplatte mit dem Label "Transfer" so gemounted: sudo mkdir /media/Transfer sudo mount -t ext4 /dev/disk/by-uuid/19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer/ === Automount === In der Date /etc/fstab wird diese Zeile hinzugefügt: UUID=19cf2678-e686-45df-b6a6-aa6411bfe008 /media/Transfer ext4 defaults,noatime 0 2 ;noatime:Verhindert das zyklische Aktualisieren des "last accessed" Zeitstempels ;0:Dieses Dateisystem ist von einem "dump" ausgenommen ;2:Dieses Dateisystem wird beim Booten gecheckt, aber nach root. === Ein Dateisystem beschreibbar remounten === sudo mount -o remount,rw /partition/identifier /mount/point === Partitionieren / Formatieren === Während normalerweise fdisk ausreicht, muss man für Partitionen > 2TB '''parted''' verwenden, das noch weniger intuitiv ist als fdisk. Es existiert eine Hilfe, aber dennoch ein Tipp: Will man den maximalen Platz für eine Partition nutzen, gibt man für ENDE '''100%''' ein. == Prozesse im Hintergrund == Um auch unter SSH vom Multitasking zu profitieren oder sich sogar ausloggen zu können (SSH disconnect), gibt es verschiedene Möglichkeiten. === Einen Task starten === Wenn man ein Kommando ausführt, von dem man schon vorher weiß, dass es unabhängig von der session laufen soll, gibt es den Befehl <code>nohup</code>, der das zu startende Programm im Hintergrund ausführt. Ein Kopiervorgang z.B. würde so gestartet werden: ==== Variante 1 ==== <pre>nohup cp /source /target &</pre> ==== Variante 2 ==== Ohne nohup soll das auch so gehen: <pre>cp /source /target & >/dev/null 2>/dev/null ; disown; </pre> ==== Variante 3 ==== Eine wohl noch bessere Möglichkeit ist <code>setsid</code>: <pre>setsid cp /source /target</pre> === Bereits laufende Tasks === Ein Task, der bereits läuft und die SSH "blockiert", weil auf das Beenden gewartet wird, kann wie folgt in den Hintergrund verschoben und unabhängig von der SSH session gemacht werden: <pre> Ctrl.+Z bg disown </pre> === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. == Shell-Tricks == === Dateinamen aus Pfad ermitteln === Hierfür gibt es eine built-in Funktion: <pre> Pfad=/Test/Datei.Ext Dateiname=$(basename "$Pfad") </pre> liefert ''Datei.Ext'' === Extension aus Dateinamen ermitteln === <pre> Dateiname=Datei.Name.Ext Extension=${Dateiname##*.} </pre> liefert ''Ext'' === JSON zu einer Variable zuweisen === Wegen Schwierigkeiten mit Single und Double-quotes, Escaping und möglicher Variablen, die aufgelöst werden sollen, ist das hier die beste und leserlichste Methode: <pre> JSON_VAR=$(cat <<EOF { "Eigenschaft1": "Wert1", "Eigenschaft2": "${VAR2}" } EOF ) </pre> === Array in Variable speichern === Normalerweise können Linux Umgebungsvariablen nur einen Wert speichern. Mit dem Kommando <pre>IFS=',' -ra OUTPUT_VAR <<< "${INPUT_VAR}"</pre> kann aber aus einem Wert wie "a,b,c" ein echtes Array <pre> a b c </pre> erzeugt werden. Auf das Array kann dann z.B. so zugegriffen werden: <pre> for i in "${OUTPUT_VAR[@]}"; do echo ${i} done </pre> Aber auch ohne diesen Umweg kann ein Array definiert werden, und das sieht dann so aus: <pre>ARRAY_VAR=([0]="a" [1]="b" [2]="c")</pre> == Absturz via Shell == Gitb man folgenden Befehls-String in eine Linux-Console ein, friert das System augenblicklich ein. Es kann durchaus auch eine Console im Fenster sein. Wer die Zeile erklären kann, bitte posten :) <pre>:(){ :|:& } ;:</pre> == WLAN konfigurieren == (Bezieht sich auf Raspbian) === wpa_supplicant.conf === Mit diesem Befehl fügt man WLAN Konfigurationen zum System hinzu: <pre> sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf </pre> Der PSK wird unverschlüsselt und verschlüsselt in diese Datei geschrieben. Der (auskommentierte) unverschlüsselte Teil kann und sollte gelöscht werden. Für versteckte WLANs muss dem eintrag noch ein <code>scan_ssid=1</code> hinzugefügt werden! Außerdem sollte <code>country=DE</code> korrekt gesetzt werden. Danach sieht die Datei dann in etwa so aus: <pre> ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=DE network={ ssid="WLAN_SSID" scan_ssid=1 psk=3458f3thjg89dg89765t95jh4kttljgl934053ujlke83455 } </pre> === /etc/network/interfaces === Diese Datei solle ungefähr so aussehen: <pre> auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf </pre> Testweise mit dem WLAN verbinden kann man sich so: <pre>sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf</pre> Nach einem Neustart sollte sich Raspbian aber dann von selbst verbinden. WLAN Verbindung prüfen: <pre>sudo systemctl status wpa_supplicant@wlan0.service</pre> === mode DORMANT === Mit <pre>ip l</pre> kann man sich den Status aller Netzwerkadapter anzeigen lassen. Es kann vorkommen, dass bei wlan0 "mode DORMANT" steht, was so etwas wie "inaktiv" bedeutet. Aktiviern lässt es sich so: <pre>ip link set wlan0 mode default</pre> == LDAP Server == Ein LDAP Server lässt sich per sudo apt install slapd ldap-utils installieren und am einfachsten durch phpLDAPAdmin verwalten. Der service heißt "'''slapd'''". Einige wichtige Kommandos sind: ;slapcat:Zeigt Informationen über den Server an ;dpkg-reconfigure slapd:Neukonfigurieren des Servers (am besten, wenn keine Daten behalten werden müssen) ;ldapsearch:Einträge im LDAP Verzeichnis suchen ;ldappasswd:Das Passwort eines LDAP Benutzers ändern ;net getlocalsid:Die SID des Systems abfragen. Wichtig für das Bilden von Benutzer-SIDs == SAMBA Server == Ein SAMBA-Server (Windows-Freigaben) lässt sich per sudo apt-get install -y samba samba-common smbclient installieren. Es werden 2 Serivces installiert: smbd und nmbd Eine SAMBA-Freigabe unterstützt diese Eigenschaften: <pre> available = yes/no path = /path valid users = user1,user2,user3,user4,@group1,@group2 invalid users = guest admin users = user1,user2 read only = yes/no read list = user3,user4,@group2 write list = user1,user2,@group1 browseable = yes/no public = yes/no guest ok = yes/no create mask = 0660 directory mask = 0770 force user = user1 force group = @group1 force create mode = 0660 force directory mode = 2770 delete readonly = yes/no locking = yes/no hide unreadable = yes/no hide files = *.bak,*.tmp caching = yes/no store dos attributes = yes/no nt acl support = yes/no vfs objects = acl_xattr </pre> veraltet: <pre> writeable = yes </pre> Einige wichtige Kommandos sind: ;pdbedit:Verwaltet Benutzer und Passwörter ;smbpasswd:Ändert das Passwort eines SAMBA-Benutzers ;testparm:Listet die aktuell geladene Konfiguration auf == Quellen == https://homeforum.zyxel.com/discussion/679/new-nas-old-hdds-how-to https://askubuntu.com/questions/8653/how-to-keep-processes-running-after-ending-ssh-session https://serverfault.com/questions/344509/ssh-run-command-in-background-disconnect https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ https://www.elektronik-kompendium.de/sites/raspberry-pi/1912221.htm f6e6fe248b15d49689a4b508617557e991adb070 Raspberry PI 0 2664 3177 3153 2025-03-02T11:48:36Z Satria 1 /* Verschiedene Tricks */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Periodische Tasks === Mit crontab -e editiert man die periodischen Tasks, die automatisch vom System ausgeführt werden. Die temporäre Datei, die im Editor geöffnet wird, kann einfach überschrieben werden, cron nimmt sie sich anschließend und aktualisiert im Hintergrund die Task liste. Mit crontab -l ruft man sich die Liste aller derzeit geplanten Tasks ab. === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft d1a501949a2bdfed7b8712b35f4eb2a0f53aac90 3178 3177 2025-03-02T11:51:22Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft 832e5fb1f2e1abc220961e11a524776db220c05a 3180 3178 2025-03-02T23:35:34Z Satria 1 /* Raspberry PI 5 mit Debian 12 bookworm */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 4832601fe42182a1baf8cc516754badfb8ecf9e6 3181 3180 2025-03-02T23:46:47Z Satria 1 /* Raspberry PI 5 mit Debian 12 bookworm */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000, pwm_levels=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. 93d8ea36501af47ef67ef28dfd8d9876d0693d72 3182 3181 2025-03-02T23:50:55Z Satria 1 /* Lüfter Steuerung */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) b2c5f7697eff35c37732c1950054a688add1c00c 3183 3182 2025-03-02T23:54:21Z Satria 1 /* Lüfter Steuerung */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... b8a03e4a6babf126ac52ad319500dafcecde25dc 3188 3183 2025-03-13T17:39:22Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... == Display per DSI Kabel == Das offizielle 7" touch-display für den Raspberry PI wird über den dafür vorgesehenen Port per Flachbandkabel angeschlossen und braucht dann nur noch 5V (über den GPIO header) um zu funktionieren. === Drehen === Wenn man den Bildschirminhalt beim Booten und für die Console drehen möchte, erreicht man das über diese beiden Konfigurationen: /boot/firmware/config.txt lcd_rotate=2 wobei 0 = 0° | 1 = 90° | 2 = 180° | 3 = 270° bedeuten /boot/firmware/cmdline.txt (and Ende der Zeile einfügen, mit Leerzeichen abgetrennt) video=DSI-1:800x480@60,rotate=180 d0730d75df15995bc822fe88ae8369bf675e846a 3189 3188 2025-03-13T17:40:05Z Satria 1 /* Display per DSI Kabel */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... == Display per DSI Kabel == Das offizielle 7" touch-display für den Raspberry PI wird über den dafür vorgesehenen Port per Flachbandkabel angeschlossen und braucht dann nur noch 5V (über den GPIO header) um zu funktionieren. === Drehen === Wenn man den Bildschirminhalt beim Booten und für die Console drehen möchte, erreicht man das über diese beiden Konfigurationen: /boot/firmware/config.txt lcd_rotate=2 wobei 0 = 0° | 1 = 90° | 2 = 180° | 3 = 270° bedeuten /boot/firmware/cmdline.txt (and Ende der Zeile einfügen, mit Leerzeichen abgetrennt) video=DSI-1:800x480@60,rotate=180 c9834b152ed5da1f4ba7bee6531e35cb270a8847 3190 3189 2025-03-13T20:02:19Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... == Touch-Display per DSI Kabel == Das offizielle 7" touch-display für den Raspberry PI wird über den dafür vorgesehenen Port per Flachbandkabel angeschlossen und braucht dann nur noch 5V (über den GPIO header) um zu funktionieren. === Drehen === Wenn man den Bildschirminhalt beim Booten und für die Console drehen möchte, erreicht man das über diese beiden Konfigurationen: /boot/firmware/config.txt lcd_rotate=2 wobei 0 = 0° | 1 = 90° | 2 = 180° | 3 = 270° bedeuten /boot/firmware/cmdline.txt (and Ende der Zeile einfügen, mit Leerzeichen abgetrennt) video=DSI-1:800x480@60,rotate=180 Wird die Touch-Funktion des Displays genutzt (z.B. in einer GUI), muss diese dann auch gedreht werden. In dem Fall muss man Folgendes in der /boot/firmware/config.txt verändern: #display_auto_detect=1 dtoverlay=vc4-kms-dsi-7inch,invx,invy 3e3d4b02e4a2c02bd53dc64fc8c18a0d6f4ebabc 3191 3190 2025-03-14T02:07:05Z Satria 1 wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf === Firmware update === Um den Bootloader zu flashen führt man im RaspiOS das hier aus: sudo rpi-eeprom-update -a == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... == Touch-Display per DSI Kabel == Das offizielle 7" touch-display für den Raspberry PI wird über den dafür vorgesehenen Port per Flachbandkabel angeschlossen und braucht dann nur noch 5V (über den GPIO header) um zu funktionieren. === Drehen === Wenn man den Bildschirminhalt beim Booten und für die Console drehen möchte, erreicht man das über diese beiden Konfigurationen: /boot/firmware/config.txt lcd_rotate=2 wobei 0 = 0° | 1 = 90° | 2 = 180° | 3 = 270° bedeuten /boot/firmware/cmdline.txt (and Ende der Zeile einfügen, mit Leerzeichen abgetrennt) video=DSI-1:800x480@60,rotate=180 Wird die Touch-Funktion des Displays genutzt (z.B. in einer GUI), muss diese dann auch gedreht werden. In dem Fall muss man Folgendes in der /boot/firmware/config.txt verändern: #display_auto_detect=1 dtoverlay=vc4-kms-dsi-7inch,invx,invy bb378ef76b8ff24be289939f0a912e95be7cca95 3192 3191 2025-03-14T02:10:13Z Satria 1 /* Touch-Display per DSI Kabel */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf === Firmware update === Um den Bootloader zu flashen führt man im RaspiOS das hier aus: sudo rpi-eeprom-update -a == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... == Touch-Display per DSI Kabel == Das offizielle 7" touch-display für den Raspberry PI wird über den dafür vorgesehenen Port per Flachbandkabel angeschlossen und braucht dann nur noch 5V (über den GPIO header) um zu funktionieren. === Drehen === Wenn man den Bildschirminhalt beim Booten und für die Console drehen möchte, erreicht man das über diese beiden Konfigurationen: /boot/firmware/config.txt lcd_rotate=2 wobei 0 = 0° | 1 = 90° | 2 = 180° | 3 = 270° bedeuten /boot/firmware/cmdline.txt (and Ende der Zeile einfügen, mit Leerzeichen abgetrennt) video=DSI-1:800x480@60,rotate=180 Wird die Touch-Funktion des Displays genutzt (z.B. in einer GUI), muss diese dann auch gedreht werden. In dem Fall muss man Folgendes in der /boot/firmware/config.txt verändern: #display_auto_detect=1 dtoverlay=vc4-kms-dsi-7inch,invx,invy === Helligkeit === Um die Helligkeit beim Booten zu setzen, fügt man diese Zeile in der /boot/firmware/config.txt ein: lcd_brightness=0..255 ''0..255'' steht für einen Wert von 0 bis 255. 7f94ec351d584e38908446041c9a4499fe36e21e 3193 3192 2025-03-14T04:28:05Z Satria 1 /* Nützliche tools */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf === Firmware update === Um den Bootloader zu flashen führt man im RaspiOS das hier aus: sudo rpi-eeprom-update -a == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) * wvkbd (On-Screen Tastatur) * eog (Bildbetrachter) == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... == Touch-Display per DSI Kabel == Das offizielle 7" touch-display für den Raspberry PI wird über den dafür vorgesehenen Port per Flachbandkabel angeschlossen und braucht dann nur noch 5V (über den GPIO header) um zu funktionieren. === Drehen === Wenn man den Bildschirminhalt beim Booten und für die Console drehen möchte, erreicht man das über diese beiden Konfigurationen: /boot/firmware/config.txt lcd_rotate=2 wobei 0 = 0° | 1 = 90° | 2 = 180° | 3 = 270° bedeuten /boot/firmware/cmdline.txt (and Ende der Zeile einfügen, mit Leerzeichen abgetrennt) video=DSI-1:800x480@60,rotate=180 Wird die Touch-Funktion des Displays genutzt (z.B. in einer GUI), muss diese dann auch gedreht werden. In dem Fall muss man Folgendes in der /boot/firmware/config.txt verändern: #display_auto_detect=1 dtoverlay=vc4-kms-dsi-7inch,invx,invy === Helligkeit === Um die Helligkeit beim Booten zu setzen, fügt man diese Zeile in der /boot/firmware/config.txt ein: lcd_brightness=0..255 ''0..255'' steht für einen Wert von 0 bis 255. f9b8bd6f9f39da421303cfbe4147f412d85bec5b 3194 3193 2025-03-14T04:49:58Z Satria 1 /* Raspberry PI mit GUI */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf === Firmware update === Um den Bootloader zu flashen führt man im RaspiOS das hier aus: sudo rpi-eeprom-update -a == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) * wvkbd (Bildschirmtastatur) * eog (Bildbetrachter) === Bildschirmtastatur im Alltag === Eine Tastatur, die sich automatisch ein- und ausblendet ist nicht so einfach zu realisieren. Was ganz gut funktioniert ist diese Lösung mit der ''wvkbd'' Tastatur, die leider keine gute Integration in eine Desktop Umgebung mit sich bringt. ~/toggle-keyboard.sh #!/bin/bash PID="$(pidof wvkbd-mobintl)" if [ "$PID" != "" ]; then kill $PID else wvkbd-mobintl & fi /usr/share/raspi-ui-overrides/applications/toggle-keyboard.desktop [Desktop Entry] Name=Toggle Virtual Keyboard Comment=Toggle Virtual Keyboard Exec=/home/pi/toggle-keyboard.sh Type=Application Icon=/usr/share/icons/PiXflat/24x24/devices/keyboard.png Categories=Panel;Utility;MB X-MB-INPUT-MECHANISM=True ~/.config/wf-panel-pi.ini ... launcher_00000x=toggle-keyboard.desktop ... Das erzeugt ein Tastatur-Icon im launcher der Taskleiste. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... == Touch-Display per DSI Kabel == Das offizielle 7" touch-display für den Raspberry PI wird über den dafür vorgesehenen Port per Flachbandkabel angeschlossen und braucht dann nur noch 5V (über den GPIO header) um zu funktionieren. === Drehen === Wenn man den Bildschirminhalt beim Booten und für die Console drehen möchte, erreicht man das über diese beiden Konfigurationen: /boot/firmware/config.txt lcd_rotate=2 wobei 0 = 0° | 1 = 90° | 2 = 180° | 3 = 270° bedeuten /boot/firmware/cmdline.txt (and Ende der Zeile einfügen, mit Leerzeichen abgetrennt) video=DSI-1:800x480@60,rotate=180 Wird die Touch-Funktion des Displays genutzt (z.B. in einer GUI), muss diese dann auch gedreht werden. In dem Fall muss man Folgendes in der /boot/firmware/config.txt verändern: #display_auto_detect=1 dtoverlay=vc4-kms-dsi-7inch,invx,invy === Helligkeit === Um die Helligkeit beim Booten zu setzen, fügt man diese Zeile in der /boot/firmware/config.txt ein: lcd_brightness=0..255 ''0..255'' steht für einen Wert von 0 bis 255. 631904f39e19060e160923215612d094eb1d63e9 3195 3194 2025-03-14T23:16:01Z Satria 1 /* Raspberry PI mit GUI */ wikitext text/x-wiki == Vorbereitung von Raspbian == Das gilt für viele Images, die auf Raspbian basieren. Nach dem Schreiben des Images auf die microSD Karte kann in der boot Partition # eine Datei "ssh" erstellt werden, um den SSH Zugang gleich zu Beginn zu aktivieren. # eine Datei "wpa_supplicant.conf" erstellt werden, damit sich der Raspi gleich zu Beginn mit dem darin eingetragenen WLAN verbindet. Der Inhalt ist in etwa so:<br><code>country=DE<br>ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br>update_config=1<br>network=<br>{<br>&nbsp;&nbsp;ssid="name"<br>&nbsp;&nbsp;scan_ssid=1<br>&nbsp;&nbsp;psk="passwort"<br>&nbsp;&nbsp;key_mgmt=WPA-PSK<br>}</code><br>scan_ssid=1 ist entscheidend, wenn der Accesspoint die SSID versteckt. # LAN IP herausfinden. Wenn der Raspberry per LAN, aber nicht an einem DHCP Server betrieben wird, wird er sich eine IP aus dem Bereich <code>169.254.x.x</code> geben. Man muss dem angeschlossenen Computer dann eine IP geben wie:<code>169.254.1.1/16</code>. Dann wird der Name <code>raspberrypi</code> zu dem Raspi führen, um die erste Konfiguration durchführen zu können. Nach dem Login per SSH mit dem Standardzugang "pi:raspberry" sollte wie immer sudo raspi-config ausgeführt werden, um die Basiskonfiguration des Raspi vorzunehmen und das Standardkennwort zu ändern. === RaspiOS Standardbenutzer === In der neuen Version des Raspberry Betriebssystems gibt es keinen Standardbenutzer "pi" mehr. Zusätzlich zu den Methoden "Raspberry Pi Imager" beim Bootvorgang mit anschlossener Peripherie gibt es auch die Möglichkeit, eine Datei "userconf" in der boot Partition anzulegen mit folgendem Inhalt: username:passwordhash ''passwordhash'' stellt das verschlüsselte Passwort dar, das so generiert werden kann: echo 'passwort' | openssl passwd -6 -stdin "passwort" ist hierbei natürlich frei zu wählen. == Verschiedene Tricks == === Statische / Dynamische IP Adresse === In /etc/dhcpcd.conf werden die Interfaces konfiguriert, die statische Adressen haben sollen. Interfaces ohne Konfiguration sind automatisch DHCP konfiguriert. === IP Adressen erneuern === Das Kommando sudo dhclient -v erneuert die IP Adressen der entsprechend konfigurierten Interfaces. === Wifi abschalten === In /boot/config.txt: dtoverlay=disable-wifi === Hardwaremeldungen abfragen === Mit dmesg fragt man das log ab, in dem auch eine "Undervoltage" aufgeführt würde, wenn sie vorkommt. Mit vcgencmd lassen sich verschiedene Statús des VideoCores abfragen, darunter auch ''get_throttled'', was bei dem zurückgelieferten Wert '''0x50000''' für einen vergangenen und bei '''0x50005''' für einen akuten Spannungsabfall steht. === Wert in realtime beobachten === Mit watch -n 1 ... kann z.B. der Wert für ''vcgencmd get_throttled'' in Echtzeit (1s Update) angesehen werden, anstatt vcgencmd immer wieder aufzurufen. === Spannungswarnung deaktivieren === Wenn auf der Console ständig eine Meldung erscheint wie hwmon hwmon1: Undervoltage detected! und es einfach beim Schreiben nervt, lässt sich das abschalten mit dem Befehl: sudo dmesg -n 1 === armhf auf arm64 === Notiz: dpkg --add-architecture armhf === Firmware update === Um den Bootloader zu flashen führt man im RaspiOS das hier aus: sudo rpi-eeprom-update -a == Benchmarks == Einige Benchmark Kommandos: <code><poem> sysbench --test=cpu --cpu-max-prime=10000 --num-threads=4 run sysbench --test=fileio --file-total-size=512M prepare sysbench --test=fileio --file-total-size=512M --file-test-mode=seqrd --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=seqwr --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M --file-test-mode=rndrw --init-rng=on --max-time=60 run sysbench --test=fileio --file-total-size=512M cleanup sysbench --test=memory --memory-total-size=3G --memory-access-mode=rnd run </poem></code> == Raspberry PI mit GUI == Auch wenn man ein lite image (ohne Desktop) installiert hat, kann man ein GUI (Desktop) nachinstallieren, z.B. "lightdm". Um den Desktop zu starten und sich erfolgreich anmelden zu können, müssen 2 Pakete nachinstalliert werden: apt install lightdm und apt install lxsession Danach kann über sudo lightdm der Desktop gestartet werden oder per raspi-config das System so eingestellt werden, dass es immer in den Desktop bootet. === PiXeL === Ein etwas ausgereifter und komfortabler Desktop ist PiXeL, der offizielle, der im großen Image vorinstalliert ist. Nachträglich installieren kann man ihn mit sudo apt install raspberrypi-ui-mods lightdm ist hierfür aber anscheinend Voraussetzung. === Nützliche tools === Was beim Benutzen des Desktops helfen kann, sind diese tools, die sich per ''apt install'' installieren lassen * file-roller (Archivverwaltung) * gdebi (Debian packet installer) * gedit (Texteditor) * wvkbd (Bildschirmtastatur) * eog (Bildbetrachter) === Bildschirmtastatur im Alltag === Eine Tastatur, die sich automatisch ein- und ausblendet ist nicht so einfach zu realisieren. Was ganz gut funktioniert ist diese Lösung mit der ''wvkbd'' Tastatur, die leider keine gute Integration in eine Desktop Umgebung mit sich bringt. ~/toggle-keyboard.sh #!/bin/bash PID="$(pidof wvkbd-mobintl)" if [ "$PID" != "" ]; then kill $PID else wvkbd-mobintl & fi /usr/share/raspi-ui-overrides/applications/toggle-keyboard.desktop [Desktop Entry] Name=Toggle Virtual Keyboard Comment=Toggle Virtual Keyboard Exec=/home/pi/toggle-keyboard.sh Type=Application Icon=/usr/share/icons/PiXflat/24x24/devices/keyboard.png Categories=Panel;Utility;MB X-MB-INPUT-MECHANISM=True ~/.config/wf-panel-pi.ini ... launcher_00000x=toggle-keyboard.desktop ... Das erzeugt ein Tastatur-Icon im launcher der Taskleiste. == microSD Karten Image verkleinern == Den Speicher (microSD Karte) des PI zu sichern ist denkbar einfach. Z.B. mit Win32DiskImager kann man den Karteninhalt als .img Datei sichern und zum Beschreiben einer neuen microSD Karte verwenden. 2 Probleme gibt es dabei: # Das Image hat immer die volle Größe der microSD Karte. Das ist aus Platzgründen schon nicht sehr schön. # Die zu beschreibende microSD Karte darf nicht auch geringfügig kleiner sein als das Image, weil sonst das Schreiben gar nicht erst gestartet wird. Es gibt eine Möglichkeit, das Image zu verkleinern und zwar auf die minimal nötige Größe: Voraussetzungen für diese Anleitung: * microSD Karteninhalt existiert bereits als .img Datei und heißt exemplarisch <code>microSD.img</code> * Die .img Datei liegt auf einer externen USB Festplatte bereit. Diese soll hier exemplarisch "BackupHDD" heißen. * Es steht ein PI zur Verfügung mit einer extra microSD Karte und Raspbian oder RaspiOS. * Dieses OS wird im Desktop-Modus betrieben (lxsession und lightdm sind installiert) und hat die Pakete dcfldd und gparted installiert. * Basis-Linux Kenntnisse, da diese Anleitung nur als Gedankenstütze für nicht Selbstverständliches dienen soll. Es ist Zeit, den PI mit Raspbian oder RaspiOS hochzufahren und sich anzumelden. Dann wird ein Terminal-Fenster geöffnet. === Startposition der 2. Partition ermitteln === Ich gehe davon aus, die externe Festplatte wurde in <code>/media/pi/BackupHDD</code> gemounted. (Hilfe: [[Linux#USB_HDD]]) <pre>sudo fdisk -l /media/pi/BackupHDD/microSD.img</pre> '''Die Sektorangabe für microSD.img2 unter "Start" ist zu notieren! Sie sei exemplarisch 524288''' === Mounten der 2. Partition des Images === Für die Zahl 524880 ist hier die tatsächlich notierte zu verwenden: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img -o $((524288*512))</pre> === GParted === <pre>sudo gparted /dev/loop0</pre> In GParted wird jetzt die große Partition verkleinert auf eine Größe von 500MB mehr als das vorgeschlagene Minimum. Wenn die Operation fehlschlagen sollte, wählt man eine Größe +500MB, bis es funktioniert. Nach Fertigstellung, klappt man die Details auf bis man den Befehl <code>resize2fs</code> findet. '''Am Ende dieses Befehls steht eine Zahl, welche zu notieren ist! Sie sei exemplarisch 4963328K.''' Die Partition kann jetzt wieder freigegeben werden: <pre>sudo losetup -d /dev/loop0</pre> === Größenanpassungen im Image mit fdisk === Es wird jetzt das ganze Image gemounted: <pre>sudo losetup /dev/loop0 /media/pi/BackupHDD/microSD.img</pre> Jetzt werden per fdisk die Metadaten der 2. Partition neu erstellt: <pre> sudo fdisk /dev/loop0 d 2 n p 2 524288 (der tatsächlich notierte Wert) +4963328K (der tatsächlich notierte Wert) w </pre> Die Frage, ob die Signatur entfernt werden soll mit N beantworten. Zur Kontrolle: <pre>sudo fdisk -l /dev/loop0</pre> '''/dev/loop0p2 wird in der "End" Spalte einen Wert haben, der zu notieren ist! Er sei exemplarisch 9926656''' Das Image kann unmounted werden: <pre>sudo losetup -d /dev/loop0</pre> === Das Image verkleinern === Jetzt kann mit diesem Befehl die .img Datei verkleinert (abgeschnitten) werden. Für die Zahl 9926656 ist der tatsächlich notierte Wert zu verwenden: <pre>sudo truncate -s $(((9926656+1)*512)) /media/pi/BackupHDD/microSD.img</pre> Fertig. Quelle: https://www.instructables.com/How-to-BackUp-and-Shrink-Your-Raspberry-Pi-Image/ === Die kleine Partition auf einer neuen SD Karte wieder expandieren === Der umgekehrte Weg funktioniert ähnlich, aber etwas einfacher. Wenn das verkleinerte Image auf eine neue SD Karte geflashed wurde, wird diese Karte per Kartenleser wieder an den Raspberry mit Desktop angeschlossen. Sie sei verfügbar unter '''/dev/sda'''. Ihre 2 Partitionen sind dann '''/dev/sda1''' und '''/dev/sda2'''. In einem Terminal schaut man sich die Partitionierungsdaten einmal an: <pre>sudo fdisk -l /dev/sda</pre> Hier ist der Start der 2. Partition (/dev/sda2) zu notieren. Er sei exemplarisch 524288. Jetzt verändert man nun wie folgt die 2. Partition: <pre> sudo fdisk /dev/sda2 d 2 n p 2 524288 (der tatsächlich notierte Wert) [leer lassen, nur ENTER drücken] (es wird automatisch der größt mögliche Wert angenommen w </pre> Wieder brauchen wir gparted: <pre>sudo gparted /dev/sda2</pre> Hier wählt man für die angezeigte Partition "Überprüfen", woraufhin man in den Details die Meldung sehen kann, dass das Dateisystem bis zum Auffüllen der Partition vergrößert wurde. Fertig! == Bluetooth Eingabegerät verbinden == Wenn der PI ohne Desktop läuft oder dieser kein Menü, keine App anbietet, um Bluetoothgeräte zu verbinden, kann man das auch über die Shell machen, sogar per SSH: <pre>sudo bluetoothctl</pre> Ich erhielt hier eine Ausgabe wie: <pre> Agent registered [bluetooth]# </pre> Man schaltet das Gerät, das man pairen möchte in den pairing mode und gibt im PI ein: <pre>scan on</pre> Man erhält eine Liste von gefundenen Geräten mit vorangestellter MAC-Adresse, gefolgt vom Namen. Die MAC-Adresse des gewünschten Gerätes wird kopiert (z.B. E4:5F:01:A8:4C:52) und für diese Befehle verwendet: <pre>trust E4:5F:01:A8:4C:52</pre> <pre>connect E4:5F:01:A8:4C:52</pre> Ggf. verlangen PI oder das Gerät noch die Eingabe einer Ziffernfolge (im Falle einer Tastatur) und danach ist das Gerät verbunden und einsatzbereit. Quelle: http://wiki.sunfounder.cc/index.php?title=Connecting_Raspberry_Pi_with_the_Bluetooth_keyboard == Raspberry PI 5 mit Debian 12 bookworm == === WiFi === In dieser OS Version lässt sich das Wifi nicht mehr über die wpa_supplicant.conf einrichten. Hier muss der NetworkManager verwendet werden. Dessen config findet man hier /etc/NetworkManager/system-connections Alternativ kann man mit dem "Raspberry PI Imager" eine firstrun.sh erstellen, die u.A. das Wifi beim ersten Start automatisch konfiguriert. === NVMe als Boot-Device === Bevor man von einer NVMe booten kann, muss der Raspi etwas konfiguriert werden. Der PCIe Port des Raspi ist standardmäßig deaktiviert und muss über die Datei /boot/firmware/config.txt eingeschaltet werden, die beim Booten ausgeführt wird. Der entsprechende Eintrag lautet: dtparam=pciex1 Nach einem Neustart kann man per sudo lspci überprüfen, ob ein ''Non-Volatile Memory Controller'' oder so ähnlich aufgelistet wird. Ist das der Fall, wird die Hardware der NVMe grundsätzlich erst mal erkannt. Damit der Raspi jetzt auch von der NVMe bootet, wählt man diese Option per sudo raspi-config aus: 6 Advanced Options -> Boot Order -> B2 (NVMe first, then USB and SD) === Minecraft-Server === Der Raspberry PI 5 ist in der Lage, einen Java-Minecraft Server zu hosten, am besten nimmt man aus performance-Gründen aber die 8GB Variante und einen M.2 HAT mit einer NVMe drauf, anstatt einer microSD Karte. Am einfachsten bedient man sich eines schon fertig präparierten Docker-Images. Der Download und der erste Start gehen so: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker <username> docker run -d \ --name minecraft-server \ --restart unless-stopped \ -p 25565:25565 \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/Berlin \ -e EULA=TRUE \ -e VERSION=1.21.3 \ -e MEMORY=6G \ -e SERVER_NAME=MinecraftPI \ -e MAX_PLAYERS=6 \ -e SNOOPER_ENABLED=FALSE -v ~/mcdata:/data \ itzg/minecraft-server:stable Um den Container beim Start zu starten, kann man z.B. einen Minecraft-Service anlegen, in dem man diese Datei erstellt: /etc/systemd/system/minecraft.service mit dem Inhalt: [Unit] Description=Start Minecraft Docker container After=network.target default.target Wants=network-online.target [Service] ExecStart=docker start minecraft-server ExecStop=docker stop minecraft-server StandardOutput=inherit StandardError=inherit Restart=no RemainAfterExit=yes User=<user> Type=idle [Install] WantedBy=multi-user.target Jetzt muss der service einmal enabled werden: sudo systemctl enable minecraft === Sensor-Daten === ;CPU-Temperatur:cat /sys/class/thermal/thermal_zone0/temp ;CPU-Lüfter Status:cat /sys/class/thermal/cooling_device0/cur_state ;CPU-Lüfter PWM-Wert:cat /sys/devices/platform/cooling_fan/hwmon/hwmon2/pwm1 === Lüfter Steuerung === In der '''/boot/firmware/config.txt''' setzt man diese Zeile hier: dtoverlay=rpi-pwm-fan,temphyst=2500,temp_levels=50000,55000,60000,fan_speeds=64,100,180 Bei 50°C würde der Lüfter mit 64/255 (25%) angesteuert. Bei 55°C würde der Lüfter mit 100/255 (40%) angesteuert. Bei 60°C würde der Lüfter mit 180/255 (70%) angesteuert. (Unsicher, da von ChatGPT) Andere Möglichkeit: # 25% dtparam=fan_temp0=50000 dtparam=fan_temp0_hyst=2500 dtparam=fan_temp0_speed=64 # 40% dtparam=fan_temp1=55000 dtparam=fan_temp1_hyst=2500 dtparam=fan_temp1_speed=100 ... == Touch-Display per DSI Kabel == Das offizielle 7" touch-display für den Raspberry PI wird über den dafür vorgesehenen Port per Flachbandkabel angeschlossen und braucht dann nur noch 5V (über den GPIO header) um zu funktionieren. === Drehen === Wenn man den Bildschirminhalt beim Booten und für die Console drehen möchte, erreicht man das über diese beiden Konfigurationen: /boot/firmware/config.txt lcd_rotate=2 wobei 0 = 0° | 1 = 90° | 2 = 180° | 3 = 270° bedeuten /boot/firmware/cmdline.txt (and Ende der Zeile einfügen, mit Leerzeichen abgetrennt) video=DSI-1:800x480@60,rotate=180 Wird die Touch-Funktion des Displays genutzt (z.B. in einer GUI), muss diese dann auch gedreht werden. In dem Fall muss man Folgendes in der /boot/firmware/config.txt verändern: #display_auto_detect=1 dtoverlay=vc4-kms-dsi-7inch,invx,invy === Helligkeit === Um die Helligkeit beim Booten zu setzen, fügt man diese Zeile in der /boot/firmware/config.txt ein: lcd_brightness=0..255 ''0..255'' steht für einen Wert von 0 bis 255. 28ce4ccca332f2953bc8640aad11426b4a08a5cc Windows 11 0 2675 3184 3166 2025-03-06T09:04:51Z Satria 1 wikitext text/x-wiki == Installation == === Windows 11 ohne Internet / Netzwerk installieren === Dies gilt für die Installation per USB-Stick: An dem Punkt, an dem man seine WLAN Verbindung einrichten soll, kommt man - wenn man dies nicht wünscht - nur weiter, indem man: # Shift+F10 drückt, um eine DOS Box zu öffnen. # und den Befehl C:\Windows\System32\oobe\bypassnro.cmd ausführt. Nach dem automatisch ausgeführten Neustart, kann man die Stelle mit "Ich habe kein Internet" abbrechen. == Taskleiste == === Taskleistenhöhe === Die Taskleiste lässt sich nicht mehr in der Höhe verstellen. Geöffnete Anwendungen können also nicht mehr übereinander dargestellt werden. In der Registry kann ein Wert verändert werden, der zumindest die Tray-Icons übereinander derstellt: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3\Settings Im Offset 0x3C steht ein Wert 02, den man auf 01 ändert. == Explorer, Desktop und Startmenü tweaks == === Windows 10 - style Kontextmenü === Wer sich im Kontextmenü den extra Klick auf "Weitere Optionen anzeigen" sparen und direkt das gewohnte vollständige Kontextmenü sehen möchte, führt diesen Befehl aus, der einen sehr einfachen Registry-Eintrag hinzufügt: reg.exe add "HKCU\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32" /f /ve Dies erzeugt den Schlüssel: [HKEY_CURRENT_USER\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32] Explorer-Instanzen neustarten und man hat wieder das alte Kontextmenü. === Windows 10 ähnliches Startmenü === Um ein Startmenü zu haben, das dem von Windows 10 zumindest ähnelt, legt man diesen Wert in der Registry an: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Start_ShowClassicMode"=dword:00000001 Ein Neustart kann erforderlich sein. 7cc0e81c3a111fcfe80e447d8938654525df49e9 3185 3184 2025-03-06T09:07:07Z Satria 1 wikitext text/x-wiki == Installation == === Windows 11 ohne Internet / Netzwerk installieren === Dies gilt für die Installation per USB-Stick: An dem Punkt, an dem man seine WLAN Verbindung einrichten soll, kommt man - wenn man dies nicht wünscht - nur weiter, indem man: # Shift+F10 drückt, um eine DOS Box zu öffnen. # und den Befehl C:\Windows\System32\oobe\bypassnro.cmd ausführt. Nach dem automatisch ausgeführten Neustart, kann man die Stelle mit "Ich habe kein Internet" abbrechen. == Taskleiste == === Taskleistenhöhe === Die Taskleiste lässt sich nicht mehr in der Höhe verstellen. Geöffnete Anwendungen können also nicht mehr übereinander dargestellt werden. In der Registry kann ein Wert verändert werden, der zumindest die Tray-Icons übereinander derstellt: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3\Settings Im Offset 0x3C steht ein Wert 02, den man auf 01 ändert. Eine zweite Möglichkeit ist der [https://github.com/valinet/ExplorerPatcher ExplorerPatcher] == Explorer, Desktop und Startmenü tweaks == === Windows 10 - style Kontextmenü === Wer sich im Kontextmenü den extra Klick auf "Weitere Optionen anzeigen" sparen und direkt das gewohnte vollständige Kontextmenü sehen möchte, führt diesen Befehl aus, der einen sehr einfachen Registry-Eintrag hinzufügt: reg.exe add "HKCU\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32" /f /ve Dies erzeugt den Schlüssel: [HKEY_CURRENT_USER\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32] Explorer-Instanzen neustarten und man hat wieder das alte Kontextmenü. === Windows 10 ähnliches Startmenü === Um ein Startmenü zu haben, das dem von Windows 10 zumindest ähnelt, legt man diesen Wert in der Registry an: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Start_ShowClassicMode"=dword:00000001 Ein Neustart kann erforderlich sein. 9e3c1ff0666ff9b4fbe8e0f7e153c00997e269bc 3186 3185 2025-03-06T10:27:54Z Satria 1 wikitext text/x-wiki == Installation == === Windows 11 ohne Internet / Netzwerk installieren === Dies gilt für die Installation per USB-Stick: An dem Punkt, an dem man seine WLAN Verbindung einrichten soll, kommt man - wenn man dies nicht wünscht - nur weiter, indem man: # Shift+F10 drückt, um eine DOS Box zu öffnen. # und den Befehl C:\Windows\System32\oobe\bypassnro.cmd ausführt. Nach dem automatisch ausgeführten Neustart, kann man die Stelle mit "Ich habe kein Internet" abbrechen. == Taskleiste == === Taskleistenhöhe === Die Taskleiste lässt sich nicht mehr in der Höhe verstellen. Geöffnete Anwendungen können also nicht mehr übereinander dargestellt werden. In der Registry kann ein Wert verändert werden, der zumindest die Tray-Icons übereinander derstellt: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3\Settings Im Offset 0x3C steht ein Wert 02, den man auf 01 ändert. Eine zweite Möglichkeit ist der [https://github.com/valinet/ExplorerPatcher ExplorerPatcher] === Symbolleisten === Wer es vermisst, dass man keine eigenen Ordner mehr auf die Taskleiste mappen kann (Neue Symbolleiste hinzufügen), der muss sich in Windows 11 mit einem extra tool helfen, das aber sehr sehr schön umgesetzt und anpassbar ist [https://github.com/Hofknecht/SystemTrayMenu SystemTrayMenu] == Explorer, Desktop und Startmenü tweaks == === Windows 10 - style Kontextmenü === Wer sich im Kontextmenü den extra Klick auf "Weitere Optionen anzeigen" sparen und direkt das gewohnte vollständige Kontextmenü sehen möchte, führt diesen Befehl aus, der einen sehr einfachen Registry-Eintrag hinzufügt: reg.exe add "HKCU\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32" /f /ve Dies erzeugt den Schlüssel: [HKEY_CURRENT_USER\Software\Classes\CLSID\{86CA1AA0-34AA-4E8B-A509-50C905BAE2A2}\InprocServer32] Explorer-Instanzen neustarten und man hat wieder das alte Kontextmenü. === Windows 10 ähnliches Startmenü === Um ein Startmenü zu haben, das dem von Windows 10 zumindest ähnelt, legt man diesen Wert in der Registry an: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Start_ShowClassicMode"=dword:00000001 Ein Neustart kann erforderlich sein. dbcea782797bed7612c18aa2c2386c6a10ad2ad3